2011-11-07 9 views
17

मुझे setVolumeControlStream को ऐसी सेवा से कॉल करने की आवश्यकता है जो STREAM_SYSTEM के माध्यम से कुछ ध्वनि बजाती है। स्पष्ट रूप से ऐसी गतिविधि में जो कोई समस्या नहीं है, लेकिन मैं इसे सेवा के साथ कैसे कर सकता हूं?कॉलिंग सेट VolumeControlStream एक सेवा से

उत्तर

2

मुझे लगता है कि इस पुस्तकालय प्रदान कर सकते हैं कि तुम क्या जरूरत है:

http://code.google.com/p/media-volume-control/

+0

पुस्तकालय या तो यह संभव नहीं है (हालांकि यह अच्छा दिखता है)। – Force

3

यह दिखता से, इस तरह से आप यह करने के लिए कोशिश कर रहे हैं संभव नहीं है।

रूप android reference

में कहा सुझाव ऑडियो स्ट्रीम इस गतिविधि

इसलिए एक सेवा कोई गतिविधि नहीं है कि साथ

की खिड़की से संबद्ध रहेगा, वहाँ टाई करने के लिए कोई खिड़की है ऑडियो स्ट्रीम करने के लिए।

हालांकि, ऐसा लगता है कि आपको ब्रॉडकास्टर से मीडिया कुंजी ईवेंट (वॉल्यूम कुंजियों सहित) प्राप्त करने में सक्षम होना चाहिए जैसा कि here दिखाया गया है जो आपको बिना किसी गतिविधि के आपकी सेवा वॉल्यूम बदलने की अनुमति देगा।

+0

मैंने इस समाधान को देखा है और यह काम नहीं कर रहा है: वॉल्यूम कुंजियों की घटनाओं को प्राप्त करने के लिए प्रसारण रिसीवर का उपयोग करने का कोई तरीका नहीं है। आपके द्वारा पोस्ट किए गए लिंक पर, android.intent.action.MEDIA_BUTTON प्लेबैक बटन के लिए उपयोग किया जाता है, जैसे प्ले/पॉज़, अगली, पिछली, आदि ... लेकिन कोई वॉल्यूम बटन नहीं। –

+0

मेरी गलती तब, मुझे लगता है कि यह एक सेवा से संभव नहीं है। इसलिए प्रतीत होता है कि ऐप्स वॉल्यूम ईवेंट को कैप्चर करने और उपयोगकर्ता की रिंगर वॉल्यूम/सिस्टम वॉल्यूम बदलने के लिए हस्तक्षेप करने वाले ऐप्स को रोकने के लिए कारण हैं। क्या कोई कारण है कि आप STREAM_MUSIC का उपयोग क्यों नहीं कर सकते? – Guykun

+0

मेरे मामले में, ऐसा इसलिए है क्योंकि मैं ऐप संगीत बजाते समय अन्य ऐप्स को म्यूट करना चाहता हूं। चूंकि अन्य सभी ऐप्स STREAM_MUSIC का उपयोग करते हैं, मुझे जो समाधान मिला वह STREAM_MUSIC को म्यूट करना था और दूसरी स्ट्रीम का उपयोग करना था। –

संबंधित मुद्दे