JavaScript - 如何将音频文件加载到 readAsArrayBuffer 中?
JavaScript - How to load an audio file into readAsArrayBuffer?
我在加载音频文件然后将其放入 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.
所以我试试这个:
let file = new File([''], '../music/song.mp3');
然后会产生此错误:
Uncaught (in promise) DOMException: Unable to decode audio data
它加载的大小为 0,我相信这就是它产生此错误的原因。
当我让用户选择要加载的文件时,一切正常:
document.getElementById('open-file').onchange = function(evt) {
let file = evt.target.files[0];
有人知道如何解决这个问题吗?
正如 Patrick Evans 所说,由于存在安全风险,这根本不可能。真遗憾,您可以使用 HTML5 轻松播放音频,但无法加载音频文件并将它们作为数组缓冲区读取。
我在加载音频文件然后将其放入 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.
所以我试试这个:
let file = new File([''], '../music/song.mp3');
然后会产生此错误:
Uncaught (in promise) DOMException: Unable to decode audio data
它加载的大小为 0,我相信这就是它产生此错误的原因。
当我让用户选择要加载的文件时,一切正常:
document.getElementById('open-file').onchange = function(evt) {
let file = evt.target.files[0];
有人知道如何解决这个问题吗?
正如 Patrick Evans 所说,由于存在安全风险,这根本不可能。真遗憾,您可以使用 HTML5 轻松播放音频,但无法加载音频文件并将它们作为数组缓冲区读取。