Ответы:
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.
}
!myAudio.paused||!myAudio.currentTime
будет лучше.
!myAudio.paused || myAudio.currentTime
?
!myAudio.paused || myAudio.currentTime
. Никогда не отвечал, кажется ...
Хотя я очень опаздываю на эту тему, я использую эту реализацию, чтобы выяснить, воспроизводится ли звук:
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 .
document.getElementsByTagName('audio').addEventListener('playing',function() { myfunction(); },false);
Должен сделать свое дело.
Попробуйте эту функцию! Воспроизведение звука не будет выполняться, если позиция является началом или концом
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 */ };
Я использую этот код jquery с кнопкой воспроизведения и остановки, кнопка воспроизведения - это кнопка воспроизведения и приостановки
const help_p = new Audio("audio/help.mp3");//Set Help Audio Name
$('#help_play').click(function() {//pause-Play
if (help_p.paused == false) {
help_p.pause();//pause if playing
} else {
help_p.play();//Play If Pausing
}
});
$('#help_stop').click(function() {//Stop Button
help_p.pause();//pause
help_p.currentTime = 0; //Set Time 0
});
Хотя не существует метода 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, он воспроизводится, иначе он остановлен.