繁体   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