我有一個香草 JS 網路應用程式,它會根據某個事件播放聲音,按下按鈕會停止聲音。這一切都很好。
但是,我最近開始在滑鼠上使用專用的媒體播放/暫停按鈕,我注意到該按鈕恢復播放該選項卡中的最后一個聲音,即使它已經被取消。
我能以某種方式阻止這種情況嗎?為了停止,我目前正在使用此答案中提到的標準解決方案:
sound.pause();
sound.currentTime = 0;
這是在 Windows 10 上的 Firefox 中。
我想對關鍵事件執行 preventDefault ,因為沒有理由像媒體軌道一樣播放/暫停這些(警報)聲音。但是基礎研究表明這個事件是由瀏覽器處理的,對 JS 是不可用的。
uj5u.com熱心網友回復:
據我所知,這種行為沒有在任何地方指定。當用戶按下硬體按鈕來切換聲音時,今天的瀏覽器會以某種方式嘗試“做正確的事情”。
有一個媒體會話標準允許自定義體驗,但如果不使用,瀏覽器會嘗試在頁面上查找活動媒體元素以應用事件。
至少據我所知,Web Audio API到目前為止還沒有連接到任何硬體鍵。AudioBufferSourceNode如果您的檔案相當小,則使用 an而不是 audio 元素可能是有意義的。
無論如何,似乎在 Firefox 和 Chrome 中有效的快速修復是將其設定currentTime為duration而不是將其設定為零。
sound.pause();
sound.currentTime = sound.duration;
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/426746.html
標籤:javascript 火狐 html5-音频
上一篇:為什么這段文字會轉化為url
