Android API设置音量级别
我们可以使用哪种Android API设置我的平板电脑的音量,以便在耳机插入时播放铃声。 目前,我使用以下API,当耳机插入时,该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
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_。许多制造商/运营商特定的音频策略仅适用于模式通话(蜂窝电话)
第三,如果问题仍然存在,你应该在不同的手机制造商/运营商上测试你的应用程序,以隔离问题。有时这是一个特定于设备的缺陷,您无法修复。我自己也见过类似的情况。有一种方法可以强制将音乐
流播放到扬声器。