2013-11-27 10 views
15

मुझे मीडियाप्लेयर की वर्तमान मात्रा को पुनः प्राप्त करने में दिलचस्पी है, लेकिन उस पर 'getVolume()' जैसी कोई विधि नहीं दिखती है। एक सेटवॉल्यूम() है, इसलिए मैं थोड़ा उलझन में हूं कि वे इस संपत्ति को पढ़ने का तरीका भी प्रदान नहीं करते हैं।एंड्रॉइड मीडियाप्लेयर वॉल्यूम

मैं कुछ अन्य उत्तर कि AudioManager उपयोग करने के लिए मात्रा को पढ़ने के लिए सुझाव दिया देखा:

int volumeLevel = am.getStreamVolume(AudioManager.STREAM_MUSIC);  
    int maxVolume = am.getStreamMaxVolume(AudioManager.STREAM_MUSIC); 

    float volume = (float)volumeLevel/maxVolume; 

बहरहाल, यह सभी संगीत के लिए डिवाइस मात्रा वापस जाने के लिए लगता है, और मात्रा के साथ मैं 'की स्थापना कर रहा हूँ कि नहीं setVolume() '... क्या MediaPlayer से वॉल्यूम प्राप्त करने का कोई तरीका है? मैं सोच रहा था कि मुझे getAudioSessionId() के साथ कुछ करने की ज़रूरत है। धन्यवाद।

+0

क्या आपने यह पोस्ट देखा है? http://stackoverflow.com/questions/4593552/how-do-you-get-set-media-volume-not-ringtone-volume-in-android – Joel

+0

हाँ getStreamVolume() हमेशा के बाद भी वही मान लौटाता प्रतीत होता है MediaPlayer.setVolume() के साथ मैन्युअल रूप से वॉल्यूम सेट करें; –

+0

क्या आपको इसके लिए समाधान मिला है? AFAIK, आपको अपने स्वयं के चर पर वर्तमान वॉल्यूम स्तरों को स्टोर करना होगा। –

उत्तर

2

जहां तक ​​मुझे पता है डिफ़ॉल्ट मीडियाप्लेयर के साथ यह संभव नहीं है। आपको इसे विस्तारित करने और वर्तमान वॉल्यूम को ट्रैक करने वाले चर के साथ अपनी खुद की getVolume() विधि जोड़ने की आवश्यकता है।

+1

हम वर्तमान वॉल्यूम को कैसे ट्रैक कर सकते हैं? मैंने 'MediaPlayer' को विस्तारित करने वाली कक्षा में 'setVolume' को ओवरराइड करने का प्रयास किया है, लेकिन इस विधि को कभी नहीं कहा जाता है। – DenisGL

+0

मुझे लगता है कि कोई 'getVolume() 'विधि नहीं है – Leenah

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