Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.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
Android API设置音量级别_Android_Audio_Android Audiomanager - Fatal编程技术网

Android API设置音量级别

Android API设置音量级别,android,audio,android-audiomanager,Android,Audio,Android Audiomanager,我们可以使用哪种Android API设置我的平板电脑的音量,以便在耳机插入时播放铃声。 目前,我使用以下API,当耳机插入时,该API似乎不起作用 audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 9, AudioManager.FLAG_SHOW_UI); 我做了以下设置,以便在插入耳机时通过扬声器传送音频(这是我的应用程序的要求) audioManager.setMode(audioManager.MODE在调用中) audi

我们可以使用哪种Android API设置我的平板电脑的音量,以便在耳机插入时播放铃声。 目前,我使用以下API,当耳机插入时,该API似乎不起作用

audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 9, AudioManager.FLAG_SHOW_UI);
我做了以下设置,以便在插入耳机时通过扬声器传送音频(这是我的应用程序的要求)
audioManager.setMode(audioManager.MODE在调用中)
audioManager.setspeakerphone(true)

当我在此设置后播放所需的音调时,音频会通过扬声器传送(即使已连接耳机),但音量太高,这看起来像
setStreamVolume
API不起作用,因为我只将音量级别设置为非常低的9。 如果我卸下耳机并运行我的用例,则此API工作正常,即以较低的音量播放音调


是否有其他API可用于在安卓系统中设置耳机插入时播放铃声的音量?

除非您的应用程序是蜂窝电话的替代品,否则使用MODE_in_call实际上会优化蜂窝电话音频,并减少资源上的流式音乐。如果您在通话中使用模式为的STREAM_MUSIC audio,则根据AudioPolicyManagerBase的手机制造商/运营商扩展,您将看到许多奇怪的行为,例如您可能看到的情况

首先,确保指定通过流式音乐播放音频。因此,您的音量控制确实在控制正确的流

第二,我建议在通话中使用MODE_而不是MODE_。许多制造商/运营商特定的音频策略仅适用于模式通话(蜂窝电话)

第三,如果问题仍然存在,你应该在不同的手机制造商/运营商上测试你的应用程序,以隔离问题。有时这是一个特定于设备的缺陷,您无法修复。我自己也见过类似的情况。

有一种方法可以强制将
音乐
流播放到扬声器。