我曾尝试使用 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)
}
有没有更简单的方法来执行音频焦点识别?图书馆或类似的东西?