2012-02-24 3 views

답변

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

오디오 태그는 paused 속성을 가지고 있습니다. 일시 중지되어 있지 않으면 재생 중입니다.

+0

정지가 없으므로 깨끗한 해결책입니다. –

+3

처음 시작하지 않으면 어떻게 될까요? – Harry

+0

그러면'paused'가 true이므로'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

음, 중간에 오디오를 일시 중지하면 어떻게됩니까? –

+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.length에서 1까지 확인해야합니다. 오디오가 실제로 시작되는 경우에만 1이됩니다. 그렇지 않으면 0이됩니다. 이는 해킹과 비슷하지만 Safari 및 Chrome과 같은 모바일 브라우저에서도 계속 작동합니다.

관련 문제