在 Android 中,通常有 3 个用户感兴趣的音频音量通道:音乐/媒体、铃声和闹钟。通常,当按下硬件音量按钮时,会设置铃声音量并相应地显示带有搜索栏的对话框。
但是,如果我打开了音乐应用程序并按下音量按钮,媒体音量通道就会被设置(并且在搜索栏对话框上会显示一个扬声器图标而不是电话)。我现在的问题是,如何为使用媒体通道音量控制而不是铃声通道的应用程序进行设置?是否有此开关或我必须手动执行此操作(捕捉音量按钮行程)?
经过一番谷歌搜索,我自己发现了它。
您可以在活动的 onCreate 方法中调用setVolumeControlStream。下面的例子。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
// change the music vol instead of ringtone vol
// when hardware volume buttons are pressed
setVolumeControlStream(AudioManager.STREAM_MUSIC);
}
对于流音乐
AudioManager audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
int currentVolume = audio.getStreamVolume(AudioManager.STREAM_MUSIC);
对于铃声
AudioManager audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
int currentVolume = audio.getStreamVolume(AudioManager.STREAM_RING);
更多信息在这里
您使用 AudioManager 并设置以下选项之一:
STREAM_ALARM //The audio stream for alarms
STREAM_DTMF //The audio stream for DTMF Tones
STREAM_MUSIC //The audio stream for music playback
STREAM_NOTIFICATION //The audio stream for notifications
STREAM_RING //The audio stream for the phone ring
STREAM_SYSTEM //The audio stream for system sounds
STREAM_VOICE_CALL
像这样:
myManager.getStreamVolume(AudioManager.STREAM_MUSIC);