簡體   English   中英

Loading.wav 到音頻緩沖區

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM