[英]Trouble with HTML5 audio loop
我無法在我的網站上獲取HTML5音頻: http : //oclock.webs.com 。 (這是一個警報,當警報響起時,應該反復循環1秒鍾的警報聲,直到您在警報框中單擊“確定”)。
簡單地在音頻標簽中包含“循環”並沒有做任何事情。
我在StackOverflow上發現了一條有用的帖子,引導我訪問這個網站: http : //forestmist.org/2010/04/html5-audio-loops/
我知道方法1和方法2對我來說不起作用,因為它們不能在Firefox上運行,而且在Chrome上也是如此,所以方法3應該有用,不幸的是它沒有。 當我在該網站的頁面上時,方法3有效,但當代碼包含在我自己的頁面中時,方法3不起作用,因此我認為可能存在一些沖突的代碼。
我網頁的相關部分:
<audio id="audio1" preload>
<source src="media/alarm.ogg" type="audio/ogg" />
<source src="media/alarm.mp3" type="audio/mpeg" />
</audio>
<audio id="audio2" preload>
<source src="media/alarm.ogg" type="audio/ogg" />
<source src="media/alarm.mp3" type="audio/mpeg" />
</audio>
該頁面的相關Javascript:
if(timer==true && hours==hv && mins==mv && secs==sv){
document.getElementById("audio1").play();
alert("o'clock: Alarm ringing!");
document.getElementById("alarm").value="Set Alarm";
document.getElementById('audio1').addEventListener('ended', function(){
this.currentTime = 0;
this.pause();
document.getElementById('audio2').play();
}, false);
document.getElementById('audio2').addEventListener('ended', function(){
this.currentTime = 0;
this.pause();
document.getElementById('audio1').play();
}, false);
}
else{
document.getElementById("audio1").pause();
document.getElementById("audio2").pause();
document.getElementById("audio1").currentTime = 0;
document.getElementById("audio2").currentTime = 0;
}
意圖:當計算機的時間與頁面上所選時間的時間相匹配時,音頻警報將重復(循環),直到用戶在警告框彈出窗口中單擊“確定”。
問題:目前它只播放音頻一次,它不循環播放。 我在哪里搞砸了?
“結束事件”或“循環”屬性不適用於某些瀏覽器。 所以我用window.setInterval()來循環播放音頻。
對於此方法,您應該知道高級音頻文件的播放時間。
function playAudioWithLoop (/**HTMLAudioElement*/audio, /**Number*/length)
{
function onEnd (){
audio.play();
}
/* length is msec */
if(length > 0) {
audio.__timer = window.setInterval(onEnd, length);
}
}
function stopAudioWithLoop (/**HTMLAudioElement*/audio)
{
if(audio.__timer) {
audio.__timer = window.clearInterval(audio.__timer);
}
}
================================================== ====================
***playAudioWithLoop(document.getElementById("audio1"), 12*1000);***
***stopAudioWithLoop(document.getElementById("audio1"));***
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.