现象:在RK3588设置系统媒体音最大无效,需要在UI上在调节一次才会正确输出最大音量
原因:在6.0上setStreamVolume()调用的时间发生了一些奇怪的事情。您必须在流开始播放之后执行它,否则它将在流停止播放之后才会生效,
修改:执行前先打开播放流
var mpTA: MediaPlayer = MediaPlayer()
mpTA.setDataSource(assets.openFd("low_test.mp3"))
mpTA.prepare()
mpTA.start()
执行设置
val maxVolume =mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC)
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, maxVolume,0);
关闭播放流
if (mpTA.isPlaying) {
mpTA.stop()
mpTA.release()
}
补充,在外放音箱上依旧无效,采用音量设置调小在调大解决
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, maxVolume -2,0)
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, maxVolume -1,0)
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, maxVolume,0)