2011-01-04 16 views
42

क्या मीडिया वॉल्यूम प्राप्त करने/सेट करने का कोई तरीका है? मैंने निम्नलिखित कोशिश की है:एंड्रॉइड में आप मीडिया वॉल्यूम (रिंगटोन वॉल्यूम नहीं) कैसे प्राप्त/सेट करते हैं?

AudioManager audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 
int currentVolume = audio.getStreamVolume(AudioManager.STREAM_RING); 

लेकिन यह रिंगटोन वॉल्यूम देता है।

+1

के बीच इंडेक्स मान बदलना मेरे द्वारा प्रदान किया गया उत्तर भी पॉप अप वॉल्यूम संवाद जो हार्डवेयर वॉल्यूम नियंत्रण का उपयोग करते समय दिखाता है। – trgraglia

उत्तर

41

AudioManager.STREAM_RING के बजाय आप AudioManager.STREAM_MUSIC का उपयोग करते हैं, इस प्रश्न ने पहले से ही here पर चर्चा की है।

+1

एक त्वरित उदाहरण यहां भी पाया जा सकता है: http://stackoverflow.com/a/5446346/491044 – trgraglia

+0

क्या आप वॉल्यूम के बारे में इस प्रश्न पर मेरी सहायता कर सकते हैं? http://stackoverflow.com/questions/35256364/volume-always-the-same –

56
private AudioManager audio; 

अंदर onCreate:

audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 

अवहेलना OnKeyDown:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    switch (keyCode) { 
    case KeyEvent.KEYCODE_VOLUME_UP: 
     audio.adjustStreamVolume(AudioManager.STREAM_MUSIC, 
       AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI); 
     return true; 
    case KeyEvent.KEYCODE_VOLUME_DOWN: 
     audio.adjustStreamVolume(AudioManager.STREAM_MUSIC, 
       AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI); 
     return true; 
    default: 
     return false; 
    } 
} 
+1

आपने अपना दिन बनाया है, समाधान बहुत अच्छी तरह से काम करता है, बिल्कुल मुझे जो चाहिए था। बस सभी को यह बताने के लिए, यह मीडिया वॉल्यूम प्रगति पट्टी के साथ पॉपअप दिखाता है और आपको अपने एप्लिकेशन में वॉल्यूम आसानी से चुनने की अनुमति देता है। धन्यवाद। – Alin

+0

कोई समस्या नहीं ... आप निश्चित रूप से मेनू और बैक बटन कुंजी डाउन जैसे स्विच स्टेटमेंट के साथ अन्य चीजों को भी संभाल सकते हैं। – trgraglia

+3

यह बहुत कठिन है। और अवांछित ध्वनि उत्पन्न करता है जैसे उपयोगकर्ता ने रिंग टोन वॉल्यूम बदल दिया। सबसे अच्छा समाधान है: http://stackoverflow.com/a/10919403/148387 – Vadim

5

निम्नलिखित कोड अधिकतम करने के लिए मीडिया स्ट्रीम मात्रा सेट हो जाएगा:

AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 
    audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC), 
    AudioManager.FLAG_SHOW_UI); 
6

आप हैं तो एक वॉल्यूम बार है जिसे आप चाहते हैं समायोजित करें- आईफोन के आईपॉड ऐप पर जो भी आप देखते हैं उसके समान- यहां बताया गया है।

setVolumeControlStream(AudioManager.STREAM_MUSIC);

26

इस के साथ एक कोशिश है। अपनी गतिविधि में, निम्न में से एक का उपयोग करें:

this.setVolumeControlStream(AudioManager.STREAM_MUSIC); 
this.setVolumeControlStream(AudioManager.STREAM_RING); 
this.setVolumeControlStream(AudioManager.STREAM_ALARM); 
this.setVolumeControlStream(AudioManager.STREAM_NOTIFICATION); 
this.setVolumeControlStream(AudioManager.STREAM_SYSTEM); 
this.setVolumeControlStream(AudioManager.STREAM_VOICECALL); 
+4

उद्धरण:" आप वॉल्यूम कुंजी प्रेस को संशोधित करने और सुनने के लिए लुभाने वाले हो सकते हैं इस तरह से आपके ऑडियो स्ट्रीम की मात्रा। आग्रह का विरोध करें। एंड्रॉइड आपके द्वारा निर्दिष्ट ऑडियो स्ट्रीम में वॉल्यूम कुंजी प्रेस को निर्देशित करने के लिए आसान setVolumeControlStream() विधि प्रदान करता है। "Http://developer.android.com/training/managing-audio/volume-playback.html#HardwareVolumeKeys – EricRobertBrewer

+2

यह इससे कहीं बेहतर है वॉल्यूम को स्वयं प्रबंधित करने की कोशिश कर रहे हैं। – strangeluck

+0

यह निश्चित रूप से उत्तर होना चाहिए। यह उन क्रियाकलापों के साथ भी काम करता है जो मूलभूतता प्राप्त करते हैं। – Brent

14

आप एक विशिष्ट मात्रा का उपयोग करने के अपनी गतिविधि सेट कर सकते हैं:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 

    switch (keyCode) { 
    case KeyEvent.KEYCODE_VOLUME_UP: 
     audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI); 
     //Raise the Volume Bar on the Screen 
     volumeControl.setProgress(audioManager.getStreamVolume(AudioManager.STREAM_MUSIC) 
       + AudioManager.ADJUST_RAISE); 
     return true; 
    case KeyEvent.KEYCODE_VOLUME_DOWN: 
     //Adjust the Volume 
     audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI); 
     //Lower the VOlume Bar on the Screen 
     volumeControl.setProgress(audioManager 
       .getStreamVolume(AudioManager.STREAM_MUSIC) 
       + AudioManager.ADJUST_LOWER); 
     return true; 
    default: 
     return false; 
    } 
+0

@hanoo ने कुछ महीने पहले अपने उत्तर में यह भी लिखा था। – trgraglia

+0

क्या आप वॉल्यूम के बारे में इस प्रश्न पर मेरी मदद कर सकते हैं? http : //stackoverflow.com/questions/35256364/volume-always-the-same –

+0

उदाहरण के लिए किसी सेवा से मौजूदा वॉल्यूम नियंत्रण स्ट्रीम को कैसे ढूंढें? – Vlad

21
AudioManager audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 
int currentVolume = audio.getStreamVolume(AudioManager.STREAM_MUSIC); 
int maxVolume = audio.getStreamMaxVolume(AudioManager.STREAM_MUSIC); 
float percent = 0.7f; 
int seventyVolume = (int) (maxVolume*percent); 
audio.setStreamVolume(AudioManager.STREAM_MUSIC, seventyVolume, 0); 
+0

'getStreamMaxVolume' वॉल्यूम सेट करने के लिए उपयोगी था। –

2

को 0

AudioManager audioManager; 
audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); 
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 0, 0); 

मात्रा निर्धारित करने के लिए पूर्ण

AudioManager audioManager; 
audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); 
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 20, 0); 

करने के लिए मात्रा निर्धारित करने के लिए मात्रा के आधार पर समायोजित किया जा सकता 0 और 20

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