【问题标题】:How do mobile websites pause videos when other apps start playing audio?当其他应用开始播放音频时,移动网站如何暂停视频?
【发布时间】:2021-05-15 23:28:47
【问题描述】:

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

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

cmd appops set org.mozilla.firefox TAKE_AUDIO_FOCUS ignore

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

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

【问题讨论】:

  • 我认为 youtube 在移动浏览器上使用“pageshow”和“pagehide”

标签: javascript android html5-video


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-07
    • 2018-05-28
    • 1970-01-01
    • 1970-01-01
    • 2018-08-28
    • 1970-01-01
    相关资源
    最近更新 更多