在Android应用程序中,我编写了一个在后台播放音乐的服务。我已经实现了OnAudioFocusChangeListener
来监听音频焦点的变化。问题是我在以下情况下没有收到回拨给onAudioFocusChange()
的电话。
在我的应用中播放音乐并将应用置于后台。 (音乐在后台播放)。
启动youtube应用,播放任何视频。这会回复onAudioFocusChange()
我暂停媒体播放器。
现在我按下youtube的主页按钮(youtube停止播放)。
回到我的应用程序并再次播放音乐并将应用程序置于背景中(音乐继续在后台播放)。
现在启动youtube并恢复视频(之前停止),这不会给我回电话onAudioFocusChange()
。
注意:仅恢复视频无法回复onAudioFocusChange()
,但播放新视频会给onAudioFocusChange()
打电话。
答案 0 :(得分:1)
为我自己的问题找到了解决方案。这就是我解决问题的方法。
每当您的应用程序失去音频焦点时,您必须请求音频焦点然后播放音乐。这样您就可以通过onAudioFocusChange()
收听音频焦点的变化。
public boolean requestFocus()
{
return AudioManager.AUDIOFOCUS_REQUEST_GRANTED == mAudioManager
.requestAudioFocus(this, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
}