2014-01-22 128 views
0

以下javascript函數提供並自動播放音頻文件(通過HTML 5音頻標籤),在6秒鐘切割mp3播放,並循環播放+從頭開始自動播放音頻。HTML5自動播放一次

的javascript:

function updateaudio() {  
var a_str = '<audio autoplay source src="audio/coolsound.mp3" type="audio/mpeg"></audio>'; 
document.getElementById('audio_span').innerHTML = a_str; 
} 
setInterval(updateaudio, 6000) 

HTML:

<div><span id="audio_span"></span><script src="js/audio.js"></script></div> 

是否有任何使用HTML5音頻屬性設置自動播放回放一旦脫落,即非循環?另外,是否有另一種方法來實現這一點(通過JavaScript或HTML5)?在音頻事件結束後,我想設置一個標誌並停止任何播放。

+0

的setTimeout()是的setInterval()的非循環的版本,所以儘量在6秒後說 – MikeHelland

+0

真棒,爲的setTimeout換出的setInterval不會暫停播放,而是允許MP3播放一次,然後停止。 – user3213563

+0

是否需要等待6秒鐘? – traditional

回答

1

如果您不想要循環,請勿使用setInterval()。

如果你只是想要六個秒後暫停播放做:

setTimeout(function() { 

    document.getElementById('audio_span').pause(); 

}, 6000)): 
+0

audio_span不是音頻標籤。它會拋出一個錯誤。你需要使用'document.getElementById('audio_span')。childNodes [0] .pause();''''也可以在最後刪除多餘的元素。添加分號而不是冒號。 – traditional

0

我將實現以下使用相同。

function updateaudio() { 
    var audio = document.createElement('audio'); 
    audio.autoplay = true; 
    audio.controls = true; 
    audio.loop = false; 
    audio.preload = true; 
    audio.src = "audio/coolsound.mp3" 

    document.getElementById('audio_span').appendChild(audio); 
} 

updateaudio();