Réponses:
function isPlaying(audelem) { return !audelem.paused; }
La balise audio a une pausedpropriété. S'il n'est pas mis en pause, c'est qu'il joue.
Vous pouvez vérifier la durée. Il est en cours de lecture si la durée est supérieure à 0 seconde et qu'il n'est pas interrompu.
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.currentTimecela ferait un meilleur travail.
!myAudio.paused || myAudio.currentTime?
!myAudio.paused || myAudio.currentTime. Jamais répondu, il semble ...
Bien que je sois vraiment en retard dans ce fil, j'utilise cette implémentation pour déterminer si le son joue:
service.currentAudio = new Audio();
var isPlaying = function () {
return service.currentAudio
&& service.currentAudio.currentTime > 0
&& !service.currentAudio.paused
&& !service.currentAudio.ended
&& service.currentAudio.readyState > 2;
}
Je pense que la plupart des drapeaux sur l'élément audio sont évidents en dehors de l'état prêt que vous pouvez lire ici: MDN HTMLMediaElement.readyState .
document.getElementsByTagName('audio').addEventListener('playing',function() { myfunction(); },false);
Devrait faire l'affaire.
Essayez cette fonction! La lecture audio ne serait pas exécutée si la position est le début ou la fin
function togglePause() {
if (myAudio.paused && myAudio.currentTime > 0 && !myAudio.ended) {
myAudio.play();
} else {
myAudio.pause();
}
}
Pour vérifier que le son est vraiment commencer à jouer, surtout si vous avez un flux, besoin de vérifier audio.played.lengthà 1. Ce ne sera 1 que si l'audio est vraiment des sons de démarrage. Sinon le sera 0. C'est plus comme un hack, mais cela fonctionne toujours même dans les navigateurs mobiles, comme Safari et Chrome.
vous pouvez utiliser l'événement onplay.
var audio = document.querySelector('audio');
audio.onplay = function() { /* do something */};
ou
var audio = document.querySelector('audio');
audio.addEventListener('play', function() { /* do something */ };
J'utilise ce code jquery avec le bouton de remorquage jouer et arrêter, le bouton de lecture est un bouton de lecture et de 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
});
Bien qu'il n'y ait pas de méthode appelée isPlaying ou quelque chose de similaire, il existe plusieurs façons d'y parvenir.
Cette méthode obtient le% de progression pendant la lecture de l'audio:
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 + '%';
}
Si le pourcentage est supérieur à 0 et inférieur à 100, il est en cours de lecture, sinon il est arrêté.