Heys guys!자바 스크립트 네이티브 오디오 라이브러리를 사용하는 큰 파일의 지연
네이티브 오디오 클래스을 사용하여 특정 위치의 오디오를 재생하려고하는데 작은 오디오 (몇 초)에서 훌륭하게 작동하지만 20 분 오디오에서 동일한 오디오를 시도하면 약 0.5 초 정도의 지연이 필요한데, 이는 내가 필요한 것보다 훨씬 많습니다.
나는 이것을 설명하기 위해 간단한 jsfiddle을 만들었습니다. 문제를 이해하는 데 도움이되기를 바랍니다.
길고 짧은 오디오의 두 위치 모두 정확히 동일하게 재생해야하지만 실제로는 그렇지 않습니다. 또한 두 개의 화면 캡처를 연결하여 오디오의 위치가 올바른지 확인합니다.
아이디어가 있으십니까? 미리 감사드립니다 !!
jsfiddle : https://jsfiddle.net/oxmanroman/n4sLLuk9/4/
playShortAudio().then(() => {
setTimeout(playLongAudio, 1000);
})
function playShortAudio() {
// play from 2 seconds, 400 milliseconds
return playAudio('https://s3.amazonaws.com/thespanishapp/test.mp3', 2.400);
}
function playLongAudio() {
// play from 4 minutes, 27 seconds, 750 milliseconds
return playAudio('https://s3.amazonaws.com/thespanishapp/large-test.mp3', 267.750);
}
function playAudio(url, startingPoint) {
return new Promise(resolve => {
const audio = new Audio(url);
// set audio position to listen 'hello miss...'
audio.currentTime = startingPoint;
// play audio when ready
audio.oncanplaythrough =() => {
audio.play();
// stop the audio and resolve the promise after two seconds of audio
setTimeout(() => {
audio.pause();
resolve();
}, 2000);
}
});
}
관련 파일을로드하는 데 걸리는 시간 때문입니다. 동시에 시작하려면 미리로드해야합니다. –
canplaythrough 이벤트 바인드가 아닌가요? 오디오가 재생 될만큼 충분히로드되었을 때? 나는 audio.preload = 'auto'설정을 시도했다; 그러나 여전히 같은 결과를 얻고 있습니다. –