Web音频API:调度声音并导出混音
发布时间:2020-12-14 21:17:13 所属栏目:资源 来源:网络整理
导读:我一直在检查Web Audio API文档和教程,但还没有安静地想出如何解决这个问题. 假设我通过XMLHttpRequest加载了几个wav文件,然后创建了buffersources.我知道我可以安排精确播放的时间.但是,如果我不想播放它们,而是想要将它们存储在缓冲区中,那该怎么办? 一个
我一直在检查Web Audio API文档和教程,但还没有安静地想出如何解决这个问题.
假设我通过XMLHttpRequest加载了几个wav文件,然后创建了buffersources.我知道我可以安排精确播放的时间.但是,如果我不想播放它们,而是想要将它们存储在缓冲区中,那该怎么办? 一个真实的例子:我想创建一个简单的音序器,你可以在其中安排鼓,然后将整个混音导出到wav(不使用RecorderJS或其他东西录制).任何想法,图书馆? 解决方法
刚刚做了一件像这样的事情.
基本上,您需要创建一个离线上下文: var offline = new webkitOfflineAudioContext(numChannels,lengthInSamples,sampleRate) 您必须使用以下新上下文重新创建所有BufferSource: var newBufferSource = offline.createBufferSource(); newBufferSource.buffer = someAudioBuffer; newBufferSource.connect(offline.destination); 然后安排播放: newBufferSource.start(offline.currentTime + 10); 然后绑定到完成事件以进行离线渲染: offline.onComplete = function( ev ){ doSomething(ev.renderedBuffer); } 然后开始’渲染’: offline.startRendering(); 一旦你有ev.renderedBuffer,你就可以随心所欲地做任何事情.在我的应用程序中,我有一个WAV编码器,我最终写了自己 – 但你可以修改Recorder.js很容易做同样的事情. 只是单挑:webkitOfflineAudioContext目前仅限Chrome.如果您有兴趣,请点击这里链接:OfflineAudioContext (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |