[英]Loading mp3 as ArrayBuffer using local file for Web Audio
我希望加載一個mp3本地文件,然后使用庫進行處理,我不能使用XMLHttpRequest,然后我使用下一個代碼來讀取本地mp3文件:
<!DOCTYPE html>
<html>
<head>
</head>
<body onload="carga();">
<input id="audio_file" type="file" accept="audio/*" />
<audio id="audio_player" />
<script>
function carga() {
audio_file.onchange = function(){
var files = this.files;
console.log(files);
alert(files);
var file = URL.createObjectURL(files[0]);
console.log(file);
alert(file);
audio_player.src = file;
audio_player.play();
};
}
</script>
</body>
</html>
但XMLHttpRequest返回ArrayBuffer,我的代碼返回一個FileList,我需要一個ArrayBuffer進行下一次處理,如何將本地mp3文件加載為ArrayBuffer?
在現代瀏覽器中,您可以使用FileReader
及其方法readAsArrayBuffer
。
document.querySelector('input').onchange = function(){ var fileReader = new FileReader; fileReader.onload = function(){ var arrayBuffer = this.result; snippet.log(arrayBuffer); snippet.log(arrayBuffer.byteLength); } fileReader.readAsArrayBuffer(this.files[0]); var url = URL.createObjectURL(this.files[0]); audio_player.src = url; audio_player.play(); };
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 --> <script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script> <input id="audio_file" type="file" accept="audio/*" /> <audio id="audio_player" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.