Antworten:
function isPlaying(audelem) { return !audelem.paused; }
Das Audio-Tag hat eine pausedEigenschaft. 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.currentTimedas 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.lengthzu 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.