HTML5 sprawdzić, czy dźwięk jest odtwarzany?
Jaki jest javascript api do sprawdzania, czy element audio html5 jest obecnie odtwarzany?
8 answers
function isPlaying(audelem) { return !audelem.paused; }
Znacznik Audio ma właściwość paused
. Jeśli nie jest wstrzymana, to gra.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-25 13:32:01
Możesz sprawdzić czas trwania. Jest odtwarzany, jeśli czas trwania jest dłuższy niż 0 sekund i nie jest wstrzymywany.
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.
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-04 20:10:09
document.getElementsByTagName('audio').addEventListener('playing',function() { myfunction(); },false);
Powinno wystarczyć.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-24 20:47:27
Chociaż jestem naprawdę spóźniony do tego wątku, używam tej implementacji, aby dowiedzieć się, czy dźwięk jest odtwarzany:
service.currentAudio = new Audio();
var isPlaying = function () {
return service.currentAudio
&& service.currentAudio.currentTime > 0
&& !service.currentAudio.paused
&& !service.currentAudio.ended
&& service.currentAudio.readyState > 2;
}
Myślę, że większość FLAG na elemencie audio jest oczywista poza stanem ready, o którym można przeczytać tutaj: MDN HTMLMediaElement.readyState .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-08 13:38:07
Wypróbuj tę funkcję! Odtwarzanie dźwięku nie zostanie wykonane, jeśli pozycja jest początkiem lub końcem
function togglePause() {
if (myAudio.paused && myAudio.currentTime > 0 && !myAudio.ended) {
myAudio.play();
} else {
myAudio.pause();
}
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-30 21:09:43
Aby sprawdzić, czy dźwięk jest naprawdę zacząć odtwarzać, zwłaszcza jeśli masz strumień, trzeba sprawdzić audio.played.length
do 1
. Będzie to 1 tylko wtedy, gdy dźwięk naprawdę zaczyna Dźwięki. W przeciwnym razie będzie 0
. To bardziej jak hack, ale nadal działa nawet w przeglądarkach mobilnych, takich jak Safari i Chrome.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-16 10:38:50
Możesz użyć zdarzenia onplay.
var audio = document.querySelector('audio');
audio.onplay = function() { /* do something */};
Lub
var audio = document.querySelector('audio');
audio.addEventListener('play', function() { /* do something */ };
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-08 03:56:42
Chociaż nie ma metody zwanej isPlaying lub czegoś podobnego, istnieje kilka sposobów, aby to osiągnąć.
Ta metoda pobiera % postępu podczas odtwarzania dźwięku:
function getPercentProg() {
var myVideo = document.getElementsById('myVideo');
var endBuf = myVideo.buffered.end(0);
var soFar = parseInt(((endBuf / myVideo.duration) * 100));
document.getElementById("loadStatus").innerHTML = soFar + '%';
}
Jeśli procent jest większy niż 0 i mniejszy niż 100, gra, w przeciwnym razie jest zatrzymywany.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-28 14:07:33