如何解决设备音量控制按钮未使用音频属性使用 USAGE_VOICE_COMMUNICATION 设置耳机扬声器音量
播放音频文件时,我将声音从外部扬声器切换到内部扬声器(耳机)。音频通过 SimpleExoPlayer 播放。 USAGE_VOICE_COMMUNICATION 属性发生切换。 声音开始通过听筒播放,但此声音的音量不受系统音量按钮的控制,系统中媒体的音量会发生变化。
我尝试将 setContentType 设置为 CONTENT_TYPE_SPEECH,问题仍然存在。
问题在 Google Pixel XL (Android 10)、一加 7t (Android 10) 上重现。 但未在三星 Galaxy S9 (Android 10) 上重复。
进行这种切换以改变正确扬声器的音量的正确方法是什么?
这是我的属性:
private fun setupAttributesWithExternalSpeaker() {
val audioAttributes = AudioAttributes.Builder()
.setContentType(C.CONTENT_TYPE_MUSIC)
.setUsage(C.USAGE_MEDIA)
.build()
simpleExoPlayer.setAudioAttributes(audioAttributes,true)
}
private fun setupAttributesWithInternalSpeaker() {
val audioAttributes = AudioAttributes.Builder()
.setContentType(C.CONTENT_TYPE_MUSIC)
.setUsage(C.USAGE_VOICE_COMMUNICATION)
.build()
simpleExoPlayer.setAudioAttributes(audioAttributes,false)
}
解决方法
如何使用 AudioManager.setMode
AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
am.setMode(AudioManager.MODE_IN_COMMUNICATION);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。