更改音频速度然后另存为新文件

时间:2016-04-28 02:32:54

标签: javascript audio

无论如何,我可以用javascript以编程方式更改音频文件的播放速度并将其另存为新文件吗?

我能想到的唯一解决方案是通过Web音频api节点管道音频文件,改变播放速率,并将输出记录为wav文件。这并不理想,因为为了记录新版本,我必须一直播放文件。

1 个答案:

答案 0 :(得分:0)

您可以使用offline audio context(网络音频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;
}