选择音量通道以在按下音量键时更改

时间:2012-11-09 08:37:52

标签: java android

在Android中,通常有3个音频音量频道对用户感兴趣:音乐/媒体,铃声和闹钟。通常,按下硬件音量按钮时,铃声音量将被设置,并且会显示带有搜索条的对话框。

但是,如果我打开音乐应用程序并按音量按钮,则会设置媒体音量通道(并且会在搜索栏对话框而不是电话上显示扬声器图标)。我现在的问题是,如何为我的应用程序设置使用媒体通道音量控制而不是铃声频道?是否有这样的开关或我是否必须手动执行此操作(捕捉音量按钮笔划)?

3 个答案:

答案 0 :(得分:8)

经过一些谷歌搜索后,我发现了自己。

您可以在活动的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);
}

答案 1 :(得分:0)

对于Stream音乐

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);

了解更多here

答案 2 :(得分:0)

您使用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);