Antworten:
function isPlaying(audelem) { return !audelem.paused; }
Das Audio-Tag hat eine paused
Eigenschaft. Wenn es nicht angehalten ist, wird es abgespielt.
Sie können die Dauer überprüfen. Es wird abgespielt, wenn die Dauer mehr als 0 Sekunden beträgt und nicht angehalten wird.
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
das einen besseren Job machen würde.
!myAudio.paused || myAudio.currentTime
?
!myAudio.paused || myAudio.currentTime
. Nie geantwortet, wie es scheint ...
Während ich zu spät zu diesem Thread komme, benutze ich diese Implementierung, um herauszufinden, ob der Sound abgespielt wird:
service.currentAudio = new Audio();
var isPlaying = function () {
return service.currentAudio
&& service.currentAudio.currentTime > 0
&& !service.currentAudio.paused
&& !service.currentAudio.ended
&& service.currentAudio.readyState > 2;
}
Ich denke, die meisten Flags auf dem Audioelement sind offensichtlich, abgesehen von dem Bereitschaftszustand, über den Sie hier lesen können: MDN HTMLMediaElement.readyState .
document.getElementsByTagName('audio').addEventListener('playing',function() { myfunction(); },false);
Sollte den Trick machen.
Probieren Sie diese Funktion aus! Die Audiowiedergabe wird nicht ausgeführt, wenn die Position der Anfang oder das Ende ist
function togglePause() {
if (myAudio.paused && myAudio.currentTime > 0 && !myAudio.ended) {
myAudio.play();
} else {
myAudio.pause();
}
}
Um zu überprüfen , ob Audio wirklich abgespielt wird beginnen, vor allem , wenn Sie einen Stream haben, müssen überprüfen audio.played.length
zu 1
. Es wird nur 1 sein, wenn Audio wirklich Startsounds ist. Sonst wird es sein 0
. Es ist eher wie ein Hack, aber das funktioniert auch in mobilen Browsern wie Safari und Chrome.
Sie können das Onplay-Ereignis verwenden.
var audio = document.querySelector('audio');
audio.onplay = function() { /* do something */};
oder
var audio = document.querySelector('audio');
audio.addEventListener('play', function() { /* do something */ };
Ich verwende diesen Abfragecode mit zwei Tasten zum Abspielen und Stoppen. Die Wiedergabetaste ist eine Wiedergabe- und Pouse-Taste
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
});
Obwohl es keine Methode namens isPlaying oder ähnliches gibt, gibt es einige Möglichkeiten, dies zu erreichen.
Diese Methode ermittelt den Prozentsatz des Fortschritts während der Audiowiedergabe:
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 + '%';
}
Wenn Prozent größer als 0 und kleiner als 100 ist, wird abgespielt, andernfalls wird es gestoppt.