HTML5 проверьте, воспроизводится ли звук?
Что такое JavaScript api для проверки, если в настоящее время воспроизводится аудиоэлемент html5?
8 ответов:
function isPlaying(audelem) { return !audelem.paused; }
аудио тега
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);
должен сделать трюк.
пока я действительно опаздываю на эту тему, я использую эту реализацию, чтобы выяснить, воспроизводится ли звук:
service.currentAudio = new Audio(); var isPlaying = function () { return service.currentAudio && service.currentAudio.currentTime > 0 && !service.currentAudio.paused && !service.currentAudio.ended && service.currentAudio.readyState > 2; }
Я думаю, что большинство флагов на аудио элемента очевидны не только состояние готовности с которой вы можете ознакомиться здесь: MDN HTMLMediaElement.readyState.
попробуйте эту функцию! Воспроизведение аудио не будет выполняться, если позиция является началом или концом
function togglePause() { if (myAudio.paused && myAudio.currentTime > 0 && !myAudio.ended) { myAudio.play(); } else { myAudio.pause(); } }
чтобы проверить, действительно ли звук начинает играть, особенно если у вас есть поток, нужно проверить
audio.played.length
до1
. Это будет 1, только если звук действительно начинает звучать. Иначе будет0
. Это больше похоже на взлом, но это все еще работает даже в мобильных браузерах, таких как Safari и Chrome.
вы можете использовать событие onplay.
var audio = document.querySelector('audio'); audio.onplay = function() { /* do something */};
или
var audio = document.querySelector('audio'); audio.addEventListener('play', function() { /* do something */ };
пока нет метода, называемого isPlaying или что-то подобное, есть несколько способов сделать это.
этот метод получает % прогресса при воспроизведении звука:
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, он играет, иначе он остановился.