Risposte:
function isPlaying(audelem) { return !audelem.paused; }
Il tag audio ha una paused
proprietà. Se non è in pausa, è in riproduzione.
Puoi controllare la durata. È in riproduzione se la durata è superiore a 0 secondi e non è in 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
farebbe un lavoro migliore.
!myAudio.paused || myAudio.currentTime
?
!myAudio.paused || myAudio.currentTime
. Mai risposto a quanto pare ...
Anche se sono davvero in ritardo su questo thread, utilizzo questa implementazione per capire se il suono viene riprodotto:
service.currentAudio = new Audio();
var isPlaying = function () {
return service.currentAudio
&& service.currentAudio.currentTime > 0
&& !service.currentAudio.paused
&& !service.currentAudio.ended
&& service.currentAudio.readyState > 2;
}
Penso che la maggior parte dei flag sull'elemento audio siano evidenti a parte lo stato ready di cui puoi leggere qui: MDN HTMLMediaElement.readyState .
document.getElementsByTagName('audio').addEventListener('playing',function() { myfunction(); },false);
Dovrebbe fare il trucco.
Prova questa funzione! La riproduzione audio non verrebbe eseguita se la posizione è l'inizio o la fine
function togglePause() {
if (myAudio.paused && myAudio.currentTime > 0 && !myAudio.ended) {
myAudio.play();
} else {
myAudio.pause();
}
}
Per controllare se l'audio è davvero iniziare a giocare, soprattutto se si dispone di un flusso, necessità di controllare audio.played.length
a 1
. Sarà 1 solo se l'audio è davvero suoni di inizio. Altrimenti lo sarà 0
. È più simile a un hack, ma funziona ancora anche nei browser mobili, come Safari e Chrome.
puoi usare l'evento onplay.
var audio = document.querySelector('audio');
audio.onplay = function() { /* do something */};
o
var audio = document.querySelector('audio');
audio.addEventListener('play', function() { /* do something */ };
sto usando questo codice jquery con il pulsante di traino play e stop, il pulsante play è un pulsante play and 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
});
Sebbene non esista un metodo chiamato isPlaying o qualcosa di simile, ci sono alcuni modi per farlo.
Questo metodo ottiene la% di avanzamento durante la riproduzione dell'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 + '%';
}
Se la percentuale è maggiore di 0 e minore di 100, è in riproduzione, altrimenti viene interrotta.