2012-04-30 66 views
2

無論如何,當使用HTML5音頻標籤有一個eventListener或使用Dom/jQuery在播放期間或結束時觸發一個事件的操作?HTML音頻 - 使用jQuery檢測位置

This回答指向currentTime的鏈接,但沒有示例,下面是僞代碼。

<!DOCTYPE html> 
<html> 
<body> 

<audio controls="controls"> 
    <source src="file.ogg" type="audio/ogg" /> 
    <source src="file.mp3" type="audio/mpeg" /> 
Your browser does not support the audio element. 
</audio> 

<script src="jquery.js"></script> 
<script> 
$(document).ready(function() { 
    $("audio").addEventListener("end", function() { 
     alert("song has ended"); 
    }); 
    $("audio").addEventListener('20.2', function() { 
     alert("your currently at 20.2 seconds in the track"); 
    }); 
}); 
</script> 

</body> 
</html> 
+1

我也看到了這個帖子,http://stackoverflow.com/questions/9830375/start-html5-audio-at-random-position - 在隨機位置開始HTML5,有一些好的代碼,你可以看到整個網站(點擊右下方的鏈接)與這篇文章相關,並確保你可以找到一些好的片段,並製作一個很好的工作簡單的腳本。 – TheBlackBenzKid

+1

http://mindovermeta.com/2010/08/how-to-build-an-iphone-compatible-html5-audio-player/和這個網站http://mindovermeta.com/demos/html5audio.php?step= 2 - 也是我需要的非常好的例子..請檢查他們和此頁上的其他鏈接 - 綽綽有餘 – AlphaApp

回答

4

你可以試試這個:

獲取音頻的持續時間,並根據該currentTime的,無論你需要一個提示,視覺提示。

audio.addEventListener("timeupdate", function(){  
var duration = document.getElementById('duration'); 
var s = parseInt(audio.currentTime % 60); var m = parseInt((audio.currentTime/60) % 60); 
duration.innerHTML = m + '.' + s + 'sec'; 
}, false); 
+1

在jQuery中? – AlphaApp

+0

我沒有得到你:( – coder

+1

我認爲他是指你把它放在代碼的哪個位置 – TheBlackBenzKid

4

可以使用ended事件:

$("audio").on("ended", function() { 
    // do stuff 
}); 
+1

是否有持續時間功能? – AlphaApp

+0

我不相信 - 至少沒有一個可以告訴你在播放的某個特定點觸發。 –

+2

這是一個有用的答案和乾淨的代碼塊,我已經返回給你一個加點代表。對不起,它只有小的價值,但你的幫助表示讚賞。 – AlphaApp