簡體   English   中英

HTML5音頻循環問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM