Odpowiedzi:
function isPlaying(audelem) { return !audelem.paused; }
Znacznik audio ma paused
właściwość. Jeśli nie jest wstrzymany, to gra.
Możesz sprawdzić czas trwania. Odtwarza, jeśli czas trwania jest dłuższy niż 0 sekund i nie jest wstrzymywany.
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
byłoby lepsze.
!myAudio.paused || myAudio.currentTime
?
!myAudio.paused || myAudio.currentTime
. Wydaje się, że nigdy nie odpowiedziałem ...
Chociaż jestem naprawdę spóźniony na ten wątek, używam tej implementacji, aby dowiedzieć się, czy dźwięk jest odtwarzany:
service.currentAudio = new Audio();
var isPlaying = function () {
return service.currentAudio
&& service.currentAudio.currentTime > 0
&& !service.currentAudio.paused
&& !service.currentAudio.ended
&& service.currentAudio.readyState > 2;
}
Myślę, że większość flag na elemencie audio jest oczywista poza stanem gotowości, o którym możesz przeczytać tutaj: MDN HTMLMediaElement.readyState .
document.getElementsByTagName('audio').addEventListener('playing',function() { myfunction(); },false);
Powinien załatwić sprawę.
Wypróbuj tę funkcję! Odtwarzanie dźwięku nie zostanie wykonane, jeśli pozycja jest początkiem lub końcem
function togglePause() {
if (myAudio.paused && myAudio.currentTime > 0 && !myAudio.ended) {
myAudio.play();
} else {
myAudio.pause();
}
}
Aby sprawdzić, czy dźwięk jest naprawdę zacząć grać, zwłaszcza jeśli masz strumień, potrzeba sprawdzenia audio.played.length
się 1
. Będzie 1 tylko wtedy, gdy dźwięk jest naprawdę dźwiękami początkowymi. W przeciwnym razie będzie 0
. To bardziej przypomina włamanie, ale nadal działa nawet w przeglądarkach mobilnych, takich jak Safari i Chrome.
możesz skorzystać z wydarzenia onplay.
var audio = document.querySelector('audio');
audio.onplay = function() { /* do something */};
lub
var audio = document.querySelector('audio');
audio.addEventListener('play', function() { /* do something */ };
Używam tego kodu jQuery z przyciskiem holowania odtwórz i zatrzymaj, przycisk odtwórz to przycisk odtwórz i pouse
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
});
Chociaż nie ma metody o nazwie isPlaying lub podobnej, można to osiągnąć na kilka sposobów.
Ta metoda uzyskuje% postępu podczas odtwarzania dźwięku:
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 + '%';
}
Jeśli procent jest większy niż 0 i mniejszy niż 100, gra, w przeciwnym razie jest zatrzymywany.