[英]Android MediaPlayer ignores it's internal volume when the system volume changes
这是我的情况:
我有一个在Android应用程序中播放音乐的媒体播放器。 我发现使用某些耳机时,即使将音量设置为最低设置,音量也太大了。 结果,我想将所有音量级别的音乐音量更改为正常音量的10%(实际上,此值是用户定义的)。
以下内容非常适用:
mediaPlayer.setVolume(0.1f, 0.1f);
音乐的音量现在处于可以收听的良好水平。 但是,如果用户现在使用音量摇杆更改音量(从而更改音乐流的音量),则媒体播放器将按预期更改音量,但似乎也将“ setVolume”参数重置为1.0,从而导致音量大幅度更改。 将音量重新设置为0.1会将音量设置为应有的音量(这是当前音乐流音量的10%)。
为MediaPlayer.setVolume方法引用Android文档:
建议使用此API来平衡应用程序中音频流的输出
如果每次系统卷更改时将其重置为1.0,该怎么办?
任何帮助,不胜感激。 谢谢。
我的建议是尝试覆盖onKeyDown(...)并通过使用以下方法获取AudioManager对象来手动调整音量:
getSystemService(AUDIO_SERVICE).adjustVolume(ADJUST_RAISE);
或您用来更改音量的任何方法。 通过覆盖音量键的行为,您将删除所有导致问题的默认行为。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.