当youtube应用程序恢复视频时,如何在我的服务中停止音​​乐?

时间:2014-07-16 06:50:25

标签: android audio service youtube focus

在Android应用程序中,我编写了一个在后台播放音乐的服务。我已经实现了OnAudioFocusChangeListener来监听音频焦点的变化。问题是我在以下情况下没有收到回拨给onAudioFocusChange()的电话。

  1. 在我的应用中播放音乐并将应用置于后台。 (音乐在后台播放)。

  2. 启动youtube应用,播放任何视频。这会回复onAudioFocusChange()我暂停媒体播放器。

  3. 现在我按下youtube的主页按钮(youtube停止播放)。

  4. 回到我的应用程序并再次播放音乐并将应用程序置于背景中(音乐继续在后台播放)。

  5. 现在启动youtube并恢复视频(之前停止),这不会给我回电话onAudioFocusChange()

  6. 注意:仅恢复视频无法回复onAudioFocusChange(),但播放新视频会给onAudioFocusChange()打电话。

1 个答案:

答案 0 :(得分:1)

为我自己的问题找到了解决方案。这就是我解决问题的方法。

每当您的应用程序失去音频焦点时,您必须请求音频焦点然后播放音乐。这样您就可以通过onAudioFocusChange()收听音频焦点的变化。

public boolean requestFocus() 
{
    return AudioManager.AUDIOFOCUS_REQUEST_GRANTED == mAudioManager
        .requestAudioFocus(this, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
}