系统音量更改时,Android MediaPlayer会忽略它的内部音量

时间:2010-06-05 17:21:06

标签: android media-player

这是我的情况:

我有一个媒体播放器在Android应用程序中播放音乐。我发现使用某些耳机时,即使音量设置为最低设置,音量也会过大。因此,我想将所有音量级别的音乐音量调整为通常的10%(实际上,这个值当然是用户定义的)。

以下作品完美无缺:

mediaPlayer.setVolume(0.1f, 0.1f);

音乐的音量现在处于良好的收听水平。但是,如果用户现在使用音量摇杆更改音量(从而更改音乐流音量),则媒体播放器会按预期更改音量,但它似乎也会将'setVolume'参数重置为1.0,从而导致音量大幅变化。将音量设置回0.1会将音量设置为应该如何(这是当前音乐流音量的10%)。

引用MediaPlayer.setVolume方法的Android文档:

  

建议使用此API来平衡应用程序中音频流的输出

如果每次系统容量更改时重置为1.0,如何执行此操作?

任何帮助非常感谢。感谢。

1 个答案:

答案 0 :(得分:0)

我的建议是尝试重写onKeyDown(...)并通过使用以下方式手动调整音量:

getSystemService(AUDIO_SERVICE).adjustVolume(ADJUST_RAISE);

或用于更改音量的任何方法。通过覆盖音量摇杆按钮行为,您将删除导致问题的任何默认行为。