android - 音乐播放器应该何时获得和放弃音频焦点?

标签 android

我正在编写一个 Android 音乐播放器,但遇到了音频焦点问题。

貌似音频焦点主要影响媒体按钮的接收,但是看了文档我不知道什么时候获得焦点,什么时候放弃焦点。

我的音乐应用程序将在后台运行,并且需要每次检测播放/暂停按钮。也就是说,即使我的应用程序没有运行,用户也应该能够按下耳机的播放按钮并开始播放音乐。

看来我永远不应该放弃音频焦点,那我为什么要实现它呢?

有谁知道应该如何使用音频焦点?谢谢!

最佳答案

It seems like audio focus mainly affects media button receiving, but after reading the document I have no idea about when to gain and give up focus.

它们都是独立的功能,因此有独立的监听器。您可能已经失去了音频焦点,但您仍然可以选择响应播放暂停硬件键

That is, even when my app is not running, a user should be able to press headset's play button and start music.

我假设您所说的上述行的意思是您仍在播放音乐但没有显示任何 Activity 。要继续听硬件按钮按下,请不要取消注册您的媒体按钮接收器(不要调用 audioManager.unregisterMediaButtonEventReceiver(receiver))。

It seems I should never give up audio focus, so why should I implement it?

你不放弃焦点,它就会被夺走。为了优雅地处理这个问题,你有 AudioFocus 监听器。例如,考虑来电。您还想继续播放您的音乐吗?

关于android - 音乐播放器应该何时获得和放弃音频焦点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11980908/

相关文章:

android - 对 Google Play 控制台中的版本控制感到困惑

android - 执行重新创建方法后未恢复的 Activity 暂停

java - Android:在位图上画一个圆圈

android - 偏好铃声默认值

android - ViewPager 中的 ScrollView

java - DatePickerDialog setMaxDate 多显示一个月零一天

java - 我们如何动态地将数组从java文件添加到android中现有的xml文件中?

android - 为什么不能使用同一个 Span 对象对上面的 setSpan 进行两次设置?

android - 仅添加库的依赖项,而不是在Gradle中添加自身

android - 如何在android中创建不带下划线的textview链接