我正在製作使用HTML5的手機遊戲。有一個背景音樂在遊戲過程中運行,理想情況下,一旦我導航到另一個頁面時應該停止...該邏輯在舊iPhone和Android上正常工作。 但是,在iPhone 4和iPad上,音樂不會停止並繼續播放(即使導航到另一個網站時),直到瀏覽器關閉。 當然,在代碼中還有一個叫HTML5音頻:即使從網站導航後,音樂也不會停止
music_var.pause()的函數以及卸載處理程序......但這看起來不起作用。 關於這裏發生的事情的任何想法?
我正在製作使用HTML5的手機遊戲。有一個背景音樂在遊戲過程中運行,理想情況下,一旦我導航到另一個頁面時應該停止...該邏輯在舊iPhone和Android上正常工作。 但是,在iPhone 4和iPad上,音樂不會停止並繼續播放(即使導航到另一個網站時),直到瀏覽器關閉。 當然,在代碼中還有一個叫HTML5音頻:即使從網站導航後,音樂也不會停止
music_var.pause()的函數以及卸載處理程序......但這看起來不起作用。 關於這裏發生的事情的任何想法?
設法找到一個解決方案,因爲I've posted here
。利用循環的,要檢查如果用戶是在網頁上。存儲時間。
var lastSeen;
var loop = function(){
lastSeen = Date.now();
setTimeout(loop, 50);
};
loop();
var music = document.getElementById('music');
music.addEventListener('timeupdate', function(){
if(Date.now() - exports.lastSeen > 100){
this.pause();
}
}, false);
這大致是我的文件的樣子。由於timeupdate事件在播放音頻元素時會持續觸發,因此我只需檢查最後一次調用循環的時間。如果它被稱爲超過100毫秒前,我暫停音樂。在我測試的iPad上工作就像一個魅力。
與audio
標籤有各種差異,有些瀏覽器在告訴(甚至沒有正確發出回調,預加載或甚至工作時)甚至不會有pause
。
爲了避免此問題,您可以在暫停之前將volume
參數設置爲0
。
嘗試使用onbeforeunload停止音樂,因爲當iPhone上的Safari瀏覽器正在播放音樂時,即使退出應用程序(有點像音樂在後臺播放音樂),音樂仍會在後臺播放。如果您雙擊主頁按鈕,請按住Safari圖標,直到出現減號按鈕,然後點擊減號音樂應該停止。這是因爲舊版iPhone可能沒有運行iOS4或更高版本(它具有多任務功能,即使在未運行時也可以在後臺播放Safari瀏覽器的音樂)。
我曾嘗試過使用該功能......但該功能似乎工作:( – Ani 2012-04-05 18:50:08
什麼是零?我的意思是數組? – Ani 2012-04-04 22:13:59
你的意思是說,如果我有music_var.src = something.mp3 ...那麼我應該有music_var [0] .pause()...對吧? – Ani 2012-04-04 22:15:36
好吧...問題是我沒有初始化這個