Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.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 更改Android中由音量按钮控制的默认音频流_Java_Android_Audio_Android Audiomanager - Fatal编程技术网

Java 更改Android中由音量按钮控制的默认音频流

Java 更改Android中由音量按钮控制的默认音频流,java,android,audio,android-audiomanager,Java,Android,Audio,Android Audiomanager,对于问题的标题,我很抱歉,但我不确定这个特定的android功能叫什么 这是我按下音量按钮时应用程序的屏幕截图 我们可以看到电话符号在顶部,这意味着它的音量由音量按钮控制 但是,我正在平板电脑(不是手机)上测试,因此更改此音量对扬声器输出没有影响 我要做的是将音量按钮映射到此处显示的第二个扬声器图标,从而更改扬声器输出音量 如何设置平板电脑的音量按钮以映射到此输出流(或此功能的任何名称)? 我试过了 am.setMode(AudioManager.MODE_正常) 和 am.setMode(A

对于问题的标题,我很抱歉,但我不确定这个特定的android功能叫什么
这是我按下音量按钮时应用程序的屏幕截图

我们可以看到电话符号在顶部,这意味着它的音量由音量按钮控制
但是,我正在平板电脑(不是手机)上测试,因此更改此音量对扬声器输出没有影响
我要做的是将音量按钮映射到此处显示的第二个扬声器图标,从而更改扬声器输出音量
如何设置平板电脑的音量按钮以映射到此输出流(或此功能的任何名称)?
我试过了
am.setMode(AudioManager.MODE_正常)

am.setMode(AudioManager.MODE\u IN\u通信)

其中am是一个
音频管理器
,但两者似乎具有相同的输出

活动
类有一个方法:

建议通过硬件音量控制更改其音量的音频流

当你的应用程序在前台时,用你希望硬件按钮修改音量的流类型调用它(例如,
stream\u MUSIC
),然后当你想将行为重置为默认值时,用
USE\u DEFAULT\u stream\u type
调用它


顺便说一下,扬声器图标并不代表扬声器的音量。至少在我上次检查时,它表示媒体卷(即遵循媒体路由策略的所有流,例如
STREAM\u MUSIC
)。

这应该在onCreate()中调用?如果这是控制音量的因素,那么AudioManager的用途是什么?因此我应该用
v
at onCreate()或onResume()调用它,然后用
use\u DEFAULT\u STREAM\u TYPE
at onPause()调用它。我用
setVolumeControlStream(AudioManager.STREAM\u MUSIC)onCreate()
setVolumeControlStream(AudioManager.USE_DEFAULT_STREAM_TYPE)中的code>
onResume()
中,但在启动活动时,它仍在执行相同的操作
onResume
onCreate
。您应该调用
setVolumeControlStream(使用默认的流类型)
,这样当您不再需要覆盖修改的卷时,就会调用它;它(主要)用于获取和设置系统范围的音频设置。使用
setVolumeControlStream
设置的行为覆盖是特定于活动的。