gpt4 book ai didi

audio - 网络音频 API : scheduling sounds and exporting the mix

转载 作者:行者123 更新时间:2023-12-04 08:26:32 24 4
gpt4 key购买 nike

我一直在查看 Web Audio API 文档和教程,但还没有弄清楚如何解决这个问题。

假设我通过 XMLHttpRequest 加载了几个 wav 文件,然后创建了缓冲区源。我知道我可以准确地安排播放开始的时间。但是,如果我不想播放它们,而是想将它们存储并安排在缓冲区中怎么办。

一个真实的例子:我想创建一个简单的音序器,您可以在其中安排鼓,然后将整个混音导出为 wav(不使用 RecorderJS 或其他东西进行录制)。任何想法,图书馆?

最佳答案

只是做了一些这样的事情。

本质上,您需要创建一个离线上下文:

var offline = new webkitOfflineAudioContext(numChannels, lengthInSamples, sampleRate)

您必须使用这个新上下文重新创建所有 BufferSources:
var newBufferSource = offline.createBufferSource();
newBufferSource.buffer = someAudioBuffer;
newBufferSource.connect(offline.destination);

然后安排播放:
newBufferSource.start(offline.currentTime + 10);

然后绑定(bind)到 complete离线渲染的事件:
offline.onComplete = function( ev ){
doSomething(ev.renderedBuffer);
}

然后开始“渲染”:
offline.startRendering();

一旦你有 ev.renderedBuffer , 你可以用它做任何你想做的事。在我的应用程序中,我有一个 WAV 编码器,我最终自己编写了它 - 但您可以修改 Recorder.js 以轻松完成相同的操作。

请注意: webkitOfflineAudioContext目前只有 Chrome。如果您有兴趣,这里是一个链接: OfflineAudioContext

关于audio - 网络音频 API : scheduling sounds and exporting the mix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16969201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com