Что javascript api для проверки того, играет ли в данный момент аудиоэлемент html5?
HTML5 проверяет, воспроизводится ли звук?
Ответ 1
function isPlaying(audelem) { return !audelem.paused; }
Тег Audio имеет свойство paused
. Если он не приостановлен, то он играет.
Ответ 2
Вы можете проверить продолжительность. Он воспроизводится, если продолжительность составляет более 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.
}
Ответ 3
document.getElementsByTagName('audio').addEventListener('playing',function() { myfunction(); },false);
Должен сделать трюк.
Ответ 4
Хотя я действительно опаздываю к этой теме, я использую эту реализацию, чтобы выяснить, воспроизводится ли звук:
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.
Ответ 5
Попробуйте эту функцию! Воспроизведение звука не будет выполняться, если позиция начинается или заканчивается
function togglePause() {
if (myAudio.paused && myAudio.currentTime > 0 && !myAudio.ended) {
myAudio.play();
} else {
myAudio.pause();
}
}
Ответ 6
Чтобы проверить, действительно ли звук начинает воспроизводиться, особенно если у вас есть поток, необходимо проверить audio.played.length
в 1
. Это будет 1, только если звук действительно запускает звуки. В противном случае будет 0
. Это больше похоже на взлом, но это все еще работает даже в мобильных браузерах, таких как Safari и Chrome.
Ответ 7
Вы можете использовать событие onplay.
var audio = document.querySelector('audio');
audio.onplay = function() { /* do something */};
или же
var audio = document.querySelector('audio');
audio.addEventListener('play', function() { /* do something */ };
Ответ 8
Хотя нет метода isPlaying или чего-то подобного, есть несколько способов сделать это.
Этот метод получает% прогресса при воспроизведении аудио:
function getPercentProg() {
var myVideo = document.getElementById('myVideo');
var endBuf = myVideo.buffered.end(0);
var soFar = parseInt((endBuf / myVideo.duration) * 100);
document.getElementById('loadStatus').innerHTML = soFar + '%';
}
Если процент больше 0 и меньше 100, он играет, иначе он остановлен.