我做了一个javascript音频测试。所有功能都适用于Opera FF和Chrome,除了audio.oncanplaythrough和audio.onended(这个2功能在Chrome上不起作用)。
<!DOCTYPE html>
<html>
<body>
<script>
var audio = new Audio("http://www.w3schools.com/html5/song.ogg");
audio.oncanplaythrough = function(){
audio.play();
}
audio.onended = function(){
alert('ended');
}
</script>
<a href="#" onclick="audio.play();">start</a><br/>
<a href="#" onclick="audio.pause();">pause</a><br/>
<a href="#" onclick="audio.volume=prompt('from 0 to 1',0.7)">volume</a><br/>
<a href="#" onclick="audio.currentTime = 3;">jump</a><br/>
</body>
</html>
答案 0 :(得分:15)
oncanplaythrough
是一个事件,而不是一个方法,另一个事件称为ended
,而不是onended
。
所以你需要倾听事件并采取行动。尝试:
audio.addEventListener('ended', function() {
alert('ended');
}, false);
和
audio.addEventListener('canplaythrough', function() {
audio.play();
}, false);
答案 1 :(得分:3)
通过JavaScript添加和播放声音
var audioElement = document.createElement('audio');
audioElement.setAttribute('src', 'loading.ogg');
audioElement.play();
获取歌曲文件路径和持续时间
audioElement.src;
audioElement.duration;
加载声音
var audioElement = document.createElement('audio');
audioElement.setAttribute('src', 'Mogwai2009-04-29_acidjack_t16.ogg');
audioElement.load()
audioElement.addEventListener("load", function() {
audioElement.play();
$(".duration span").html(audioElement.duration);
$(".filename span").html(audioElement.src);
}, true);
停止播放歌曲
audioElement.pause();
更改音量
audioElement.volume=0;
在歌曲中正好播放35秒
audioElement.currentTime=35;
audioElement.play();