繁体   English   中英

当系统音量更改时,Android MediaPlayer会忽略其内部音量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM