Android – AudioManager.onAudioFocusChange()随机触发

Android – AudioManager.onAudioFocusChange()随机触发,第1张

概述我正在构建一个媒体播放器并以类似于文档的方式实现onAudioFocusChange(): OnAudioFocusChangeListener afChangeListener = new OnAudioFocusChangeListener() {public void onAudioFocusChange(int focusChange) { if (focusChange == 我正在构建一个媒体播放器并以类似于文档的方式实现onAudioFocusChange():

OnAudioFocuschangelistener afchangelistener = new OnAudioFocuschangelistener() {public voID onAudioFocusChange(int focusChange) {    if (focusChange == AUdioFOCUS_LOSS_TRANSIENT        // Pause playback    } else if (focusChange == AudioManager.AUdioFOCUS_GAIN) {        // Resume playback     } else if (focusChange == AudioManager.AUdioFOCUS_LOSS) {        am.unregisterMediabuttonEventReceiver(RemoteControlReceiver);        am.abandonAudioFocus(afchangelistener);        // Stop playback    }  }};

唯一奇怪的问题是:当我的手机在后台与应用程序坐在一起并且媒体播放器暂停时,该服务将随机开始播放.当我删除上面的代码时,它不会发生.因此,使用AUdio_FOCUS_GAIN作为参数看起来随机调用onAudioFocusChange().还有其他人处理过这个问题吗?

解决方法 每次应用请求或释放音频焦点时都会调用onAudioFocusChange().这可以来自任何应用程序,而不仅仅是您的应用程序.
实际上,每个播放声音的通知(例如文本/邮件/ …)都会获得焦点,然后释放它.一旦另一个应用程序释放音频焦点,您的应用程序将再次获得焦点,因此将调用您的简历回放.

为了避免在你不想玩的时候播放,你可以保留一个布尔值来指示你的应用是否应该播放:

boolean wantsMusic = true;OnAudioFocuschangelistener afchangelistener = new OnAudioFocuschangelistener() {public voID onAudioFocusChange(int focusChange) {    if (focusChange == AUdioFOCUS_LOSS_TRANSIENT        // Pause playback    } else if (focusChange == AudioManager.AUdioFOCUS_GAIN && wantsMusic) {        // Resume playback     } else if (focusChange == AudioManager.AUdioFOCUS_LOSS) {        am.unregisterMediabuttonEventReceiver(RemoteControlReceiver);        am.abandonAudioFocus(afchangelistener);        // Stop playback    }  }};
总结

以上是内存溢出为你收集整理的Android – AudioManager.onAudioFocusChange()随机触发全部内容,希望文章能够帮你解决Android – AudioManager.onAudioFocusChange()随机触发所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1127902.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存