javascript音频onload

Uw0*_*001 4 javascript audio html5

我做了一个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>
Run Code Online (Sandbox Code Playgroud)

Ian*_*lin 16

oncanplaythrough是一个事件,而不是一个方法,而另一个事件被调用ended而不是onended.

所以你需要倾听事件并采取行动.尝试:

audio.addEventListener('ended', function() { 
   alert('ended');
}, false);
Run Code Online (Sandbox Code Playgroud)

audio.addEventListener('canplaythrough', function() { 
   audio.play();
}, false);
Run Code Online (Sandbox Code Playgroud)

  • 这应该是`canplaythrough` (2认同)

小智 5

通过 JavaScript 添加和播放声音

var audioElement = document.createElement('audio');
audioElement.setAttribute('src', 'loading.ogg');
audioElement.play();
Run Code Online (Sandbox Code Playgroud)

获取歌曲文件路径和时长

audioElement.src;
audioElement.duration;
Run Code Online (Sandbox Code Playgroud)

加载声音

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);
Run Code Online (Sandbox Code Playgroud)

停止一首歌

audioElement.pause();
Run Code Online (Sandbox Code Playgroud)

改变音量

audioElement.volume=0;
Run Code Online (Sandbox Code Playgroud)

在歌曲中精确播放 35 秒

audioElement.currentTime=35;
audioElement.play();
Run Code Online (Sandbox Code Playgroud)

  • ...我问:如何在Chrome中使用audio.oncanplaythrough和audio.onended (2认同)