HTML5检查audio是否正在播放?

检查html5audio元素当前正在播放的javascript api是什么?

function isPlaying(audelem) { return !audelem.paused; } 

audio标签有一个paused属性。 如果没有暂停,那么它正在播放。

你可以检查持续时间。 如果持续时间超过0秒并且没有暂停,则播放。

 var myAudio = document.getElementById('myAudioID'); if (myAudio.duration > 0 && !myAudio.paused) { //Its playing...do your job } else { //Not playing...maybe paused, stopped or never played. } 
 document.getElementsByTagName('audio').addEventListener('playing',function() { myfunction(); },false); 

应该做的伎俩。

试试这个function! 如果位置是开始或结束,audio播放将不被执行

 function togglePause() { if (myAudio.paused && myAudio.currentTime > 0 && !myAudio.ended) { myAudio.play(); } else { myAudio.pause(); } } 

虽然我真的很迟到这个线程,我使用这个实现来判断声音是否在播放:

 service.currentAudio = new Audio(); var isPlaying = function () { return service.currentAudio && service.currentAudio.currentTime > 0 && !service.currentAudio.paused && !service.currentAudio.ended && service.currentAudio.readyState > 2; } 

我觉得audio元素上的大多数标志都是明显的,除了你可以在这里阅读的就绪状态: MDN HTMLMediaElement.readyState 。

虽然没有方法称为isPlaying或类似的,有几种方法来实现这一点。

当audio播放时,此方法获得进度的百分比:

 function getPercentProg() { var myVideo = document.getElementsById('myVideo'); var endBuf = myVideo.buffered.end(0); var soFar = parseInt(((endBuf / myVideo.duration) * 100)); document.getElementById("loadStatus").innerHTML = soFar + '%'; } 

如果百分比大于0且小于100,则正在播放,否则停止播放。