오디오 파일을로드하는 중에 문제가 발생하여 readAsArrayBuffer에 저장하는 중입니다. 난 그냥 그렇게처럼 로컬 하나를로드 할, 사용자가 파일을 선택하기를 원하지 않는다 :JavaScript - 오디오 파일을 readAsArrayBuffer에로드하는 중 문제가 발생했습니다.
나는, 나는 다음과 같은 오류 위합니까let file = new File('../music/song.mp3');
let reader = new FileReader();
reader.onload = function(e) {
playSound(e.target.result);
}
reader.readAsArrayBuffer(file);
: 그래서
Uncaught TypeError: Failed to construct 'File': 2 arguments required, but only 1 present.
을 나는이 시도 :
: 다음이 오류가 발생Uncaught (in promise) DOMException: Unable to decode audio data
let file = new File([''], '../music/song.mp3');
로드되는 크기는 0입니다.이 오류는이 오류를 생성하는 이유입니다.
이document.getElementById('open-file').onchange = function(evt) {
let file = evt.target.files[0];
사람이이 문제를 해결하는 방법을 알고 있나요 : 나는 사용자가 부하에 파일을 선택할 수 있습니다 때
모든 것이 잘 작동?
사용자 상호 작용없이 로컬 파일 시스템 파일을 읽을 수 없으면 보안 위험이 있습니다. [File()에 대한 문서] (https://developer.mozilla.org/en-US/docs/Web/API/File/File)도 참조하십시오. 인수가 무엇인지 보여줍니다. –
이 파일을 가져와야합니다. 파일 생성자는 URI를 처리하지 않고 입력을 받아들이지 않습니다. 그래서 당신이 원하는 것은'fetch ('../ music/song.mp3')입니다. 그러면 (r => r.arrayBuffer()) then (buf => audioContext.decodeAudioData (buf) .then (enjoyTheAudioBuffer) ;' – Kaiido