【问题标题】:Device volume control buttons doesn't set ear speaker volume with audio attribute usage USAGE_VOICE_COMMUNICATION设备音量控制按钮不使用音频属性设置耳机音量 USAGE_VOICE_COMMUNICATION
【发布时间】:2021-06-21 02:02:14
【问题描述】:

播放音频文件时,我将声音从外部扬声器切换到内部扬声器(耳机)。音频通过 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)
}

Full player class here

【问题讨论】:

    标签: android audio exoplayer


    【解决方案1】:

    使用 AudioManager.setMode 怎么样

    AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
    am.setMode(AudioManager.MODE_IN_COMMUNICATION);
    

    【讨论】:

      猜你喜欢
      • 2012-12-14
      • 2017-04-17
      • 1970-01-01
      • 1970-01-01
      • 2022-07-04
      • 1970-01-01
      • 2013-12-13
      • 1970-01-01
      • 2011-08-14
      相关资源
      最近更新 更多