Respuestas:
function isPlaying(audelem) { return !audelem.paused; }
La etiqueta de audio tiene una paused
propiedad. Si no está en pausa, entonces se está reproduciendo.
Puedes comprobar la duración. Se está reproduciendo si la duración es superior a 0 segundos y no está en pausa.
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
haría un mejor trabajo.
!myAudio.paused || myAudio.currentTime
?
!myAudio.paused || myAudio.currentTime
. Parece que nunca respondí ...
Si bien llegué muy tarde a este hilo, utilizo esta implementación para averiguar si se está reproduciendo el sonido:
service.currentAudio = new Audio();
var isPlaying = function () {
return service.currentAudio
&& service.currentAudio.currentTime > 0
&& !service.currentAudio.paused
&& !service.currentAudio.ended
&& service.currentAudio.readyState > 2;
}
Creo que la mayoría de las banderas en el elemento de audio son obvias, aparte del estado listo, que puede leer aquí: MDN HTMLMediaElement.readyState .
document.getElementsByTagName('audio').addEventListener('playing',function() { myfunction(); },false);
Debería hacer el truco.
¡Prueba esta función! La reproducción de audio no se ejecutará si la posición es el principio o el final
function togglePause() {
if (myAudio.paused && myAudio.currentTime > 0 && !myAudio.ended) {
myAudio.play();
} else {
myAudio.pause();
}
}
Para comprobar si el audio está realmente empezar a jugar, especialmente si usted tiene una corriente, necesidad de comprobar audio.played.length
a 1
. Será 1 solo si el audio es realmente sonidos de inicio. De lo contrario lo será 0
. Es más como un truco, pero aún funciona incluso en navegadores móviles, como Safari y Chrome.
puedes usar el evento onplay.
var audio = document.querySelector('audio');
audio.onplay = function() { /* do something */};
o
var audio = document.querySelector('audio');
audio.addEventListener('play', function() { /* do something */ };
Estoy usando este código jquery con el botón de remolque reproducir y detener, el botón de reproducción es un botón de reproducción y posicionamiento
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
});
Si bien no existe un método llamado isPlaying o algo similar, hay algunas formas de lograrlo.
Este método obtiene el% de progreso mientras se reproduce el 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 el porcentaje es mayor que 0 y menor que 100, se está reproduciendo; de lo contrario, se detiene.