Réponses:
function isPlaying(audelem) { return !audelem.paused; }
La balise audio a une paused
proprié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.currentTime
cela 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é.