我一直在使用以下代码来获取音频焦点,并在用户接到电话或启动带有语音功能的应用程序时暂停音频:
mAudioManager.requestAudioFocus(
new AudioManager.OnAudioFocusChangeListener() {
@Override
public void onAudioFocusChange(int focusChange) {
handleFocusChange(focusChange);
}
},
AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
我在onCreate()
的服务中称呼它。在handleFocusChange()
上,我检查焦点变化,我停在亏损上而在收益上玩。每次尝试都可以正常工作。不过,自Android O起不推荐使用。
我已经搜索了文档和SO,并且找到了以下解决方案:
How to set Audio Focus ChangeListener in Android API O?
我将其放在onCreate()中。但是,它只能运行一次,并且可以处理音频损失。我必须重新启动应用程序才能再次运行该应用程序,并且还必须处理一次音频丢失的情况。
我很茫然。我不知道如何使新解决方案像可以正常工作的pre-O解决方案那样工作。我在这个问题上待了整整一天。新解决方案有什么不同之处吗?
如果您有任何信息,我将不胜感激。