Web Audio API를 사용하여 음악 용 사용자 지정 웹 플레이어를 작성하려고하지만 오디오 디코딩 문제가 발생합니다.AudioBuffer가 Cachable/decodeAudioData가 길지 않습니다
AudioContext.decodeAudioData 함수를 사용하여 .mp3을 백엔드에서 ArrayBuffer로 가져 와서 디코딩합니다.
const resp = await fetch(url);
const raw = await resp.arrayBuffer();
const audioBuffer = context.decodeAudioData(raw);
IndexedDB에서 AudioBuffer를 캐시하려고하는데 복제가 불가능합니다. 디코딩은 내 장치에서 일반 mp3로 약 10 초가 걸리며 꽤 오래 걸립니다. 프리 페치와 "프리 디코딩"을 제외하고는 노래 사이의 대기 시간을 길게하는 다른 선택의 여지가 있습니까?
데이터를 스트림으로 가져 와서 부분적으로 디코딩 할 수 없습니까? – Nit
자바 스크립트 시계가 매우 부정확하기 때문에 부분적으로 디코딩하는 것이 상당히 복잡해 보입니다. 나는 그것을 시도했지만 오디오 조각들 사이에 딱딱 거리는 것을 멈출 수는 없었다. "ArrayBuffer에 포함 된 오디오 파일 데이터를 비동기 적으로 디코딩합니다.이 경우 ArrayBuffer는 일반적으로 responseType을 arraybuffer로 설정 한 후 XMLHttpRequest의 응답 특성에서로드됩니다.이 메서드는 오디오 파일. " https://developer.mozilla.org/de/docs/Web/API/AudioContext – Lucas