0

我曾尝试使用 AudioManager 执行此操作,但是当我执行以下操作时它不起作用。如果我播放我的媒体播放器并打开一个 youtube 视频,音乐会在我的媒体播放器中正确停止。但是,如果现在我暂停 YouTube 视频,我会重新打开媒体播放器并重新打开 YouTube 视频,再见会重叠并且它不会再次检测到它失去焦点。

Ese es el metodo que he creado en mi servicio y lo llamo en el onCreate():

private fun focusCall(){

    val mOnAudioFocusChangeListener: OnAudioFocusChangeListener

    mOnAudioFocusChangeListener = OnAudioFocusChangeListener { focusChange ->

        when (focusChange) {

            AudioManager.AUDIOFOCUS_GAIN -> {
                if(isPlaying){
                    playMusic()
                }
            }

            AudioManager.AUDIOFOCUS_GAIN_TRANSIENT -> {
                if(isPlaying){
                    playMusic()
                }
            }

            AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK -> {
                if(isPlaying){
                    playMusic()
                }
            }

            AudioManager.AUDIOFOCUS_LOSS -> {
                if(isPlaying){
                    pauseMusic()
                }
            }

            AudioManager.AUDIOFOCUS_LOSS_TRANSIENT -> {
                if(isPlaying){
                    pauseMusic()
                }
            }
        }
    }

    var audioManager : AudioManager = applicationContext.getSystemService(Context.AUDIO_SERVICE) as AudioManager

    var result = am.requestAudioFocus(mOnAudioFocusChangeListener,AudioManager.STREAM_MUSIC,AudioManager.AUDIOFOCUS_GAIN)

}

有没有更简单的方法来执行音频焦点识别?图书馆或类似的东西?

4

0 回答 0