Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 选择要在音量键按下时更改的音量频道_Java_Android - Fatal编程技术网

Java 选择要在音量键按下时更改的音量频道

Java 选择要在音量键按下时更改的音量频道,java,android,Java,Android,在安卓系统中,通常有3个用户感兴趣的音量通道:音乐/媒体、铃声和闹钟。通常,按下硬件音量按钮时,会设置铃声音量,并相应显示一个带有seekbar的对话框 但如果我打开音乐应用程序并按下音量按钮,媒体音量频道就会设置好(seekbar对话框上会显示一个扬声器图标,而不是手机)。我现在的问题是,如何为使用媒体频道音量控制而不是铃声频道的应用程序设置音量?这有开关吗?还是我必须手动操作(捕捉音量按钮的敲击声)?在谷歌搜索之后,我自己找到了答案 您可以调用活动的onCreate方法。下面的例子 @Ove

在安卓系统中,通常有3个用户感兴趣的音量通道:音乐/媒体、铃声和闹钟。通常,按下硬件音量按钮时,会设置铃声音量,并相应显示一个带有seekbar的对话框


但如果我打开音乐应用程序并按下音量按钮,媒体音量频道就会设置好(seekbar对话框上会显示一个扬声器图标,而不是手机)。我现在的问题是,如何为使用媒体频道音量控制而不是铃声频道的应用程序设置音量?这有开关吗?还是我必须手动操作(捕捉音量按钮的敲击声)?

在谷歌搜索之后,我自己找到了答案

您可以调用活动的onCreate方法。下面的例子

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

抱歉,我不想获取卷,但我想设置当用户按下硬件卷键时修改哪个卷流。抱歉,我不想获取卷,但我想设置当用户按下硬件卷键时修改哪个卷流。是的,它确实是重复的。