这是我的情况:
我有一个媒体播放器在Android应用程序中播放音乐。我发现使用某些耳机时,即使音量设置为最低设置,音量也会过大。因此,我想将所有音量级别的音乐音量调整为通常的10%(实际上,这个值当然是用户定义的)。
以下作品完美无缺:
mediaPlayer.setVolume(0.1f, 0.1f);
音乐的音量现在处于良好的收听水平。但是,如果用户现在使用音量摇杆更改音量(从而更改音乐流音量),则媒体播放器会按预期更改音量,但它似乎也会将'setVolume'参数重置为1.0,从而导致音量大幅变化。将音量设置回0.1会将音量设置为应该如何(这是当前音乐流音量的10%)。
引用MediaPlayer.setVolume方法的Android文档:
建议使用此API来平衡应用程序中音频流的输出
如果每次系统容量更改时重置为1.0,如何执行此操作?
任何帮助非常感谢。感谢。
答案 0 :(得分:0)
我的建议是尝试重写onKeyDown(...)并通过使用以下方式手动调整音量:
getSystemService(AUDIO_SERVICE).adjustVolume(ADJUST_RAISE);
或用于更改音量的任何方法。通过覆盖音量摇杆按钮行为,您将删除导致问题的任何默认行为。