首页 > 解决方案 > 如何通过音频焦点处理使 YouTube 视频静音并且不中断音乐播放?

问题描述

我正在尝试使用android-youtube-player库(https://github.com/PierfrancescoSoffritti/android-youtube-player)播放 YouTube 视频,我想在没有耳机打开或播放用户音乐时静音。问题是,即使我用youTubePlayer.setVolume(0)in将视频静音YouTubePlayer.onStateChange,当视频开始播放时音乐也会停止。如果我继续播放音乐,视频就会停止。标准的 Google YouTube 库根本无法解决这个用例。

我试过这段代码,但这没有帮助。你有什么建议可以解决这个问题吗?

override fun onStateChange(youTubePlayer: YouTubePlayer, state: PlayerConstants.PlayerState) {
    if (state == PlayerConstants.PlayerState.BUFFERING) {
            val audioManager = context.getSystemService(Context.AUDIO_SERVICE) as AudioManager
            if (!Utility.isHeadsetConnected(context) || audioManager.isMusicActive) {
                audioManager.requestAudioFocus (object : AudioManager.OnAudioFocusChangeListener {
                    override fun onAudioFocusChange(focusChange: Int) {
                        if (focusChange == AudioManager.AUDIOFOCUS_LOSS) {
                            audioManager.abandonAudioFocus(this)
                        }
                    }
                }, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN)
                youTubePlayer.setVolume(0)
            }
        }
}

标签: androidandroid-youtube-apiandroid-audiomanager

解决方案


推荐阅读