簡體   English   中英

如何擺脫Chrome在Android上顯示的“媒體播放”通知?

[英]How to get rid of “media playing” notification shown by Chrome on Android?

我的HTML5游戲有一些背景音樂,在“html5”模式下使用Howler.js,這顯然會觸發Chrome for Android的媒體播放通知 這意味着當用戶在任何標簽中打開我的游戲時會出現通知:

游戲是一個好公民,並且當標簽不在焦點時暫停音樂,因此不需要此通知。 它甚至會讓人感到困惑,因為用戶可以在不進入游戲的情況下暫停和恢復游戲的背景音樂。 但我找不到擺脫通知的方法。

我嘗試在音樂對象上調用stop()而不是pause()mute() ,但這並不會刪除通知。

MediaSession更深一點,我發現了實驗性的MediaSession APIW3C草案 ),據說可以用來控制通知。 但是,如果我理解正確,它無法完全禁用它!

我在申請開始時嘗試了這個:

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

但是,這僅設置聲明的播放狀態 (在規范術語中)。 將其設置為'none'無效:

實際播放狀態按以下方式計算:

  • 如果聲明的播放狀態為“正在播放”,則返回“播放”。
  • 否則,返回猜測的播放狀態

猜測的播放狀態是我無法控制的; 它是由瀏覽器根據頁面上<audio>元素的狀態派生的。

我是否有可能忽視,或者這只是對當前MediaSession規范的疏忽?

可能就是你要找的東西。

如果您可以在5秒內完成音樂循環(如在NES天內),通知將不會顯示它。

否則,請使用沒有“audio”元素的Web Audio API。 所以,使用流。

否則,“使用audio.src =''關閉媒體通知。” 參考

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM