【发布时间】:2014-01-22 11:44:48
【问题描述】:
我的任务是为录制的文件添加一些效果。
这是我正在使用的脚本 Recorder.JS
这是一个代码https://github.com/cwilso/AudioRecorder/blob/master/js/recorderjs/recorder.js
我想添加音调。
我尝试查看为音频添加一些效果的其他代码。 但似乎 recorder.js 处理缓冲区的方式不同。
编辑
function playbackRecorderAudio() {
audioRecorder.getBuffer(function(buffers) {
var source = audioContext.createBufferSource();
source.buffer = audioContext.createBuffer(1, buffers[0].length, 44100);
source.buffer.getChannelData(0).set(buffers[0]);
source.buffer.getChannelData(0).set(buffers[1]);
source.connect(audioContext.destination);
source.noteOn(0);
});
}
这是我的代码现在的样子,使用这个函数,我请求已经录制的音频并播放它。
我可以模拟一些效果来接近这个:http://www.youtube.com/watch?v=Lr80slqJ3zo 这是格鲁吉亚语,但我希望你能明白。它更像是氦沥青。 (注意,我不想改变音频速度)。
当我尝试研究氦效应时,我发现:http://chemistry.about.com/b/2013/08/26/helium-voice-is-not-higher-in-pitch.htm 它说声音应该比空气快 2.5。
我可以得到一些接近这个的东西吗?
编辑
根据@cwilso 的建议,http://chromium.googlecode.com/svn/trunk/samples/audio/granular.html 是迄今为止我所见过的最接近的。但我无法修改它,以使用我的playbackRecorderAudio()。
这就是为什么我要开始用我所拥有的一切来赏金
编辑
这是我的代码的 jsFiddle: http://jsfiddle.net/Lsvnp/1/
首先让我描述一下我想要实现的目标:
我想从用户麦克风录制声音,添加这个效果。
当用户按下“停止录制”按钮(stopRecording 功能)时,它将预先添加 HTML 音频,这将允许用户收听他录制的内容。如果他喜欢,他会上传到我的服务器(uploadAudio函数)
当页面加载时,录制没有初始化。要初始化录制,用户必须按下某个按钮,该按钮将触发recordAudio 功能。
现在的问题是我不知道在哪里连接我的playbackRecorderAudio 函数。将其用作缓冲区的转换器。
【问题讨论】:
标签: javascript html html5-audio web-audio-api getusermedia