[英]Loading .wav into a Audio Buffer
我正在嘗試在 javascript 中創建一個小網絡應用程序,它通過同時為每個音符播放多個音頻文件來播放一些隨機和弦。
我發現如果我使用普通的“音頻” class 這不起作用,因為它們不會同時播放。 (不可靠)因此我想使用 Web 音頻 API。 但是在這里我遇到了一個問題:如何將我的“Audio()”對象(或任何“.wav”文件)轉換為 AudioBuffer?
const AudioContext = window.AudioContext || window.webkitAudioContext;
var audioCtx = new AudioContext();
var audioElement = new Audio("sounds/cut/24.wav");
myArrayBuffer = someUnknownFunction(audioElement);
//Alternative: myArrayBuffer = someOtherUnknownFunction("sounds/cut/24.wav")
var track = audioCtx.createBufferSource();
track.buffer = myArrayBuffer;
track.connect(audioCtx.destination);
track.start(0);
有誰知道,這個“someUnknownFuntion(Audio)”可能是什么?
您可能想閱讀BaseAudioContext.decodeAudioData()
基本上,您需要使用BaseAudioContext.decodeAudioData()
function 指定源:
const AudioContext = window.AudioContext || window.webkitAudioContext;
var audioCtx = new AudioContext();
var audioFile = fetch("sounds/cut/24.wav").then(response => response.arrayBuffer()).then(buffer => audioCtx.decodeAudioData(buffer)).then(buffer => {
var track = audioCtx.createBufferSource();
track.buffer = buffer;
track.connect(audioCtx.destination);
track.start(0);
});
我從這個問題中fetch
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.