API O上的AudioFocusChangeListener不起作用

时间:2019-06-22 20:26:13

标签: java android

我一直在使用以下代码来获取音频焦点,并在用户接到电话或启动带有语音功能的应用程序时暂停音频:

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解决方案那样工作。我在这个问题上待了整整一天。新解决方案有什么不同之处吗?

如果您有任何信息,我将不胜感激。

0 个答案:

没有答案