更改音频速度,然后另存为新文件
Change audio speed then save as new file
我是否可以用javascript以编程方式更改音频文件的播放速度并将其保存为新文件?
我能想到的唯一解决方案是通过网络音频api节点传输音频文件,改变播放速率,并将输出记录为wav文件。但这并不理想,因为我必须全程播放该文件才能录制新版本。
您可以使用离线音频上下文(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;
}
相关文章:
- 将配置文件文件夹移动到sdcardfirefoxmobile14.0
- Grunt imagemin-观察多个文件/文件夹优化单个文件
- 如何使用javascript创建新的文件夹/文件
- Angular 2-模型驱动的表单,带有输入文件(文件上传)
- 将整个JavaScript文件文件夹添加到HTML5应用程序缓存中
- 添加新的文件上传字段
- HTML或JavaScript,如何找出程序文件文件夹的位置
- 使用 OS 在 JavaScript 中预置文件.文件
- 在以前的更改时附加新的文件上传按钮
- 使用纯 JavaScript 创建文件/文件夹
- 删除并重新生成文件输入时清除文件列表
- 基本脚本,它向自己发送一封包含从文件文件夹中随机选择的内容的邮件
- 巴贝尔节点不't编译时忽略指定的文件/文件夹
- 在bootstrap 3模式中添加新的文件和克隆
- nodejs:每次向文件中添加行时,都会向服务器发送新的文件内容
- 在以下场景中,如何使代码可用于多个文件文件对象
- Chrome拖放文件/文件夹不工作
- 准备新的文件,甚至是同一个文件
- Grunt -观察新的文件夹
- 在引用通过JavaScript调用添加的新JS文件后调用JavaScript函数