当其他应用开始播放音频时,移动网站如何暂停视频?

时间:2021-05-15 23:28:47

标签: javascript android html5-video

如果其他应用(如 Spotify 或将媒体控件置于通知中的播客播放器)开始播放音频,某些移动网站(如 YouTube 和 Twitch)将暂停 html

有趣的是,这些不只是获取音频焦点 - 如果无法获得它,它们也会停止播放。例如,我在 android 上使用 firefox,所以我尝试禁用它使用 adb 获取音频焦点的能力:

cmd appops set org.mozilla.firefox TAKE_AUDIO_FOCUS ignore

但现在,视频会立即暂停,因为它无法暂停其他音频源。

网站如何检测到这一点?我将调试器连接到我的手机并查看了 docs,但我在任何一个地方都没有看到任何东西。

1 个答案:

答案 0 :(得分:0)

我不确定如何解释这个特定标志“TAKE_AUDIO_FOCUS”,但现代 Android 焦点管理基于“请求”(不接受)音频焦点。应用程序会请求它并立即获取它或监听来自 AudioManager 的更新以了解它们是否得到它。同样,当其他人请求(然后接收)焦点时,他们会得到更新,他们应该做出相应的反应(即暂停/躲避自己)。大概你提到的应用程序已经请求 audioFocus 并且被拒绝了,然后还没有收到焦点,所以他们只是选择保持暂停而不是开始播放音频/视频并在尚未释放焦点的应用程序上大声疾呼。

来源https://developer.android.com/guide/topics/media-apps/audio-focus