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,则正在播放,否则停止播放。