2012-04-04 77 views
1

我正在製作使用HTML5的手機遊戲。有一個背景音樂在遊戲過程中運行,理想情況下,一旦我導航到另一個頁面時應該停止...該邏輯在舊iPhone和Android上正常工作。 但是,在iPhone 4和iPad上,音樂不會停止並繼續播放(即使導航到另一個網站時),直到瀏覽器關閉。 當然,在代碼中還有一個叫HTML5音頻:即使從網站導航後,音樂也不會停止

music_var.pause()
的函數以及卸載處理程序......但這看起來不起作用。 關於這裏發生的事情的任何想法?

+0

什麼是零?我的意思是數組? – Ani 2012-04-04 22:13:59

+0

你的意思是說,如果我有music_var.src = something.mp3 ...那麼我應該有music_var [0] .pause()...對吧? – Ani 2012-04-04 22:15:36

+0

好吧...問題是我沒有初始化這個

回答

0

設法找到一個解決方案,因爲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上工作就像一個魅力。

0

audio標籤有各種差異,有些瀏覽器在告訴(甚至沒有正確發出回調,預加載或甚至工作時)甚至不會有pause

爲了避免此問題,您可以在暫停之前將volume參數設置爲0

0

嘗試使用onbeforeunload停止音樂,因爲當iPhone上的Safari瀏覽器正在播放音樂時,即使退出應用程序(有點像音樂在後臺播放音樂),音樂仍會在後臺播放。如果您雙擊主頁按鈕,請按住Safari圖標,直到出現減號按鈕,然後點擊減號音樂應該停止。這是因爲舊版iPhone可能沒有運行iOS4或更高版本(它具有多任務功能,即使在未運行時也可以在後臺播放Safari瀏覽器的音樂)。

+0

我曾嘗試過使用該功能......但該功能似乎工作:( – Ani 2012-04-05 18:50:08