2012-09-22 3 views
2

iPad 용 HTML5 웹 앱을 만들고 있지만 PC 브라우저에서도 실행할 수 있습니다. 백그라운드에서 재생되는 오디오 파일로 일부 화면 전환을 동기화하기 위해 javascript 함수 setTimeout을 사용하고 있습니다.iPad와 PC에서 setTimeout이 더 빨리 실행됩니다.

특히, 내가 사용하는 코드는 다음과 같습니다 PC에서

setTimeout(showStartScreen, 30000); 
setTimeout(showInstructionScreen, 60000); 

타이밍은 완벽하고 전환이 오디오 미세와 일치합니다. iPad 2에서 전환은 PC보다 약 0.5 초 빠릅니다. iPad 3에서 전환은 더욱 빨라졌습니다.

다른 플랫폼에서 무언가를 시간을 재는 데보다 신뢰할 수있는 방법이 있습니까?

+0

오디오 파일을 여러 조각으로 나눌 수 있습니까? – akonsu

+0

아니요, iOS5에서 각 파일을 재생하려면 사용자 상호 작용이 필요합니다.이를 해결하려면 하나의 파일로 묶어 두십시오. –

+0

그렇지 않은 경우 재생중인 오디오의 현재 위치를 반환 할 수있는 플레이어를 사용하십시오. 이미 그것을 사용하여 – Alexander

답변

7

타임 아웃을 생성하고 타이머가 동기화되기를 바란다면 오디오의 currentTime을 폴링하고 이에 대한 조치를 취해야합니다.

setInterval(function() { 
    var now = audio.currentTime; 
    // do something based on the audio's position. 
},25); 

여기서는 HTML5 <audio> 요소를 사용한다고 가정합니다.

+0

완벽! 고맙습니다. –

관련 문제