【发布时间】:2016-04-29 22:24:57
【问题描述】:
无论如何,我可以通过 javascript 以编程方式更改音频文件的播放速度并将其保存为新文件吗?
我能想到的唯一解决方案是通过网络音频 api 节点传输音频文件,更改播放速率,并将输出记录为 wav 文件。这并不理想,因为我必须一直播放文件才能录制新版本。
【问题讨论】:
标签: javascript audio
无论如何,我可以通过 javascript 以编程方式更改音频文件的播放速度并将其保存为新文件吗?
我能想到的唯一解决方案是通过网络音频 api 节点传输音频文件,更改播放速率,并将输出记录为 wav 文件。这并不理想,因为我必须一直播放文件才能录制新版本。
【问题讨论】:
标签: javascript audio
您可以使用offline audio context (Web Audio API) 来处理音频。 这会处理音频,而无需等待实时播放。
//will hold the sped up audio
var spedUpBuffer;
//Create the context
var offlineCtx = new OfflineAudioContext(2,44100*40,44100);//(channels,length,Sample rate);
//create source node and load buffer
var source = offlineCtx.createBufferSource();
source.buffer = yourBuffer;
//speed the playback up
source.playbackRate.value = 1.25;
//lines the audio for rendering
source.start(0);
//renders everything you lined up
offlineCtx.startRendering();
offlineCtx.oncomplete = function(e) {
//copies the rendered buffer into your variable.
spedUpBuffer = e.renderedBuffer;
}
【讨论】: