gpt4 book ai didi

android - 如何摆脱 Chrome 在 Android 上显示的 "media playing"通知?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:20:35 26 4
gpt4 key购买 nike

我的 HTML5 游戏有一些在“html5”模式下使用 Howler.js 的背景音乐,这显然会触发 Chrome for Android 的 media playback notifications .这意味着当用户在任何选项卡中打开我的游戏时会出现一条通知:

游戏是一个好公民,当标签不在焦点时暂停音乐,所以不需要这个通知。它甚至会造成混淆,因为用户可以在不进入游戏的情况下暂停和恢复游戏的背景音乐。但我找不到摆脱通知的方法。

我试着调用 stop()而不是 pause()mute()在音乐对象上,但这不会删除通知。

再深入一点,我发现了实验 MediaSession API ( W3C draft ) 据推测可用于控制通知。但是,如果我理解正确的话,它没有提供完全禁用它的方法!

我在申请开始时试过这个:

if (typeof navigator.mediaSession == 'object') {
navigator.mediaSession.playbackState = 'none'
}

但是,这只会设置声明的播放状态(在规范术语中)。并将其设置为 'none'没有效果:

The actual playback state is computed in the following way:

  • If the declared playback state is "playing", return "playing".
  • Otherwise, return the guessed playback state.

猜测的播放状态是我无法控制的;它是由浏览器根据 <audio> 的状态导出的页面上的元素。

是否有可能我忽略了,或者这只是对当前 MediaSession 规范的疏忽?

最佳答案

This可能是您正在寻找的。

如果您可以在 5 秒内让音乐循环播放(就像在 NES 时代一样),通知将不会显示它。

否则,使用不带“音频”元素的网络音频 API。所以,使用流。

否则,“使用 audio.src = '' 关闭媒体通知。” reference

关于android - 如何摆脱 Chrome 在 Android 上显示的 "media playing"通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55727452/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com