2012-02-24 7 views

答えて

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

オーディオタグには、pausedというプロパティがあります。一時停止していない場合は再生中です。

+0

停止がないので、これはクリーンな解決策です。 –

+3

初めて起動した場合はどうすればいいですか? – Harry

+0

それで 'paused'が真で、' isPlaying() 'はfalseを返します。 –

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

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

-2

isPlayingなどのメソッドはありませんが、これを行うにはいくつかの方法があります。オーディオが再生されているよう

この方法では、進捗状況の%を取得します。

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 + '%'; 
} 

%が0より大きく、100未満である場合、それは他のそれが停止され、再生されています。

+0

Erm、途中でオーディオを一時停止するとどうなりますか? –

+1

それから再生されません。 –

+0

これは、バッファされた量のみを検出します。たとえば、オーディオ要素がデータのバッファリングを開始したが、十分なデータがないために再生が開始されていない場合、このメソッドは引き続きtrueを返すことができます。または、要素が再生の一部としてデータをバッファに入れた後、一時停止した場合 – dhasenan

22

期間を確認することができます。持続時間が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. 

} 
+1

個人的に私は '!myAudio.paused ||!myAudio.currentTime'がより良い仕事をすると信じています。 – m93a

+5

@ m93aあなたは '!myAudio.paused || myAudio.currentTime'? – MalcolmOcean

+1

はい、 '!myAudio.paused || myAudio.currentTime'。それは戻って返信されません... – Parth

2

この機能を試してみてください!音が再生されている場合は位置が先頭または私はこのスレッドには本当に遅れるものの

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

を終了している場合 オーディオ再生が実行されないだろう、私が把握するために、この実装を使用します。

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

0

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

関連する問題