2010-09-14 36 views
1

我在使用默認控件時遇到了多個頁面,其中包含多個<audio>。我還沒有深入測試過創建自定義控件。移動Safari和UIWebView中的多個HTML5音頻標記

自定義控件有一個「開始」按鈕,可以更改爲「暫停」。 OK,可以正常工作以暫停音頻。但是,當您轉到頁面上的第二個音頻控件時,它將永遠不會播放,而第一個是暫停的 。如果你讓第一個播放完畢,第二個播放器將在播放按鈕被點擊時播放。

是否有「停止」功能?如果是這樣,那意味着我需要創建一個自定義控件,我可以這樣做,但是我沒有發現這個事件會被用來實際上「停止」 中的第一個。此外,用戶必須暫停,然後才能知道他們還需要在播放第二個音頻之前按下停止按鈕,這可能真的讓人感到困惑。

希望我可以使用腳本來檢查以前的音頻是否暫停,然後停止第一個音頻或重置它,然後繼續播放第二個音頻。

任何想法? 謝謝, Linda P.S.我對JavaScript感到很痛苦,所以如果有人幫忙寫劇本,我會很感激。

+0

我已經證實,在HTML5的音頻標籤沒有「停止」功能。任何熟悉JavaScript和HTML5的人都可以使用腳本來幫助用戶嘗試播放頁面上的第2,第3或第n個音頻,從而使正在播放的音頻結束。 – Linda 2010-09-19 01:56:17

回答

1

最後。這工作。

<script type="text/javascript"> 
setTimeout(function() { 
    var myAudio = document.getElementsByTagName('audio')[0]; 
    var myAudio1 = document.getElementsByTagName('audio')[1]; 
    myAudio1.addEventListener('play', function(){ 
     myAudio.pause(); 
    }, false); 

    myAudio.addEventListener('play', function(){ 
     myAudio1.pause(); 
    }, false); 
},1000); 

0

我接收到與下面的代碼上移動的Safari這些錯誤: INVALID_STATE_ERR:DOM異常11 INDEX_SIZE_ERR:DOM異常1



setTimeout(function() { 
document.getElementById('audio_3').addEventListener('play', function(){ 
document.getElementById('audio_4').currentTime = 0; 
document.getElementById('audio_4').pause(); 
}, false); 

document.getElementById('audio_4').addEventListener('play', function(){ 
document.getElementById('audio_3').currentTime = 0; 
document.getElementById('audio_3').pause(); 
}, false); 
},1000);