web-dev-qa-db-ja.com

HTML5は、オーディオが再生されているかどうかを確認しますか?

Html5オーディオ要素が現在再生されているかどうかを確認するためのJavaScript APIは何ですか?

104
Harry
function isPlaying(audelem) { return !audelem.paused; }

Audioタグにはpausedプロパティがあります。一時停止されていない場合は、再生中です。

135

期間を確認できます。継続時間が0秒を超えており、一時停止されていない場合は再生中です。

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.

}
34
Maxali

私はこのスレッドに本当に遅れていますが、この実装を使用して、サウンドが再生されているかどうかを判断します。

service.currentAudio = new Audio();

var isPlaying = function () {
    return service.currentAudio
        && service.currentAudio.currentTime > 0
        && !service.currentAudio.paused
        && !service.currentAudio.ended
        && service.currentAudio.readyState > 2;
}

オーディオ要素のほとんどのフラグは、ここで読むことができる準備状態を除いて明らかであると思います: MDN HTMLMediaElement.readyState

11
Hassan Mahmud
document.getElementsByTagName('audio').addEventListener('playing',function() { myfunction(); },false); 

トリックを行う必要があります。

10
projectxmatt

この機能を試してください!位置が開始または終了の場合、オーディオ再生は実行されません。

function togglePause() {
     if (myAudio.paused && myAudio.currentTime > 0 && !myAudio.ended) {
         myAudio.play();
     } else {
         myAudio.pause();
     }
}
4
Nidlol Masyhud

特にストリームがある場合、オーディオが本当に再生を開始しているかどうかを確認するには、audio.played.lengthから1を確認する必要があります。オーディオが本当に開始音である場合にのみ1になります。それ以外の場合は、0になります。これはハッキングに似ていますが、SafariやChromeなどのモバイルブラウザーでも機能します。

0
Alex Ivasyuv

onplayイベントを使用できます。

var audio = document.querySelector('audio');
audio.onplay = function() { /* do something */};

または

var audio = document.querySelector('audio');
audio.addEventListener('play', function() { /* do something */ };
0