在Android中,通常有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);