javascript - iOS Safari關閉時停止HTML5音頻循環播放



ios6 html5-audio (1)

管理找到解決方案:

利用循環來檢查用戶是否在網頁上。 存儲時間。

var lastSeen;
var loop = function (){
    lastSeen = Date.now();
    setTimeout(loop, 50);
};
loop();

var music = document.getElementById('music');
music.addEventListener('timeupdate', function (){
    if(Date.now() - lastSeen > 100){
        this.pause();
    }
}, false);

這大致是我的文件看起來像。 由於timeupdate事件在播放音頻元素時會持續觸發,所以我只需要檢查最後一次調用循環的時間。 如果它被稱為超過100毫秒前,我暫停音樂。 就像我測試的iPad上的魅力一樣。

https://src-bin.com

好吧,我有這樣簡單的事情:

<audio autoplay='autoplay' loop='loop' id='audio' controls>
  <source src='http://www.w3schools.com/html/horse.ogg'/>
  <source src='http://www.w3schools.com/html/horse.mp3'/>
</audio>

現在,當我在iOS設備上播放音頻時,它會很好地循環播放, 但是 ,當我關閉瀏覽器窗口或切換標籤時,它會一直處於循環狀態,暫停播放的唯一方法是關閉瀏覽器標籤。 我嘗試刪除loop='loop'並重播它用JavaScript的話, 這工作,但與音頻約1.5分鐘長,它仍然可以很煩人。 但是這並不起作用,因為即使瀏覽器未打開, ended事件也會觸發。

演示中,聲音是我可以在網上找到的第一個,但請注意,我的實際聲音很長,所以當瀏覽器窗口關閉時,我確實需要pause

我已經嘗試暫停onbluronunloadonbeforeunload無濟於事。 有沒有辦法阻止音頻在後台播放?





html5-audio