use*_*108 7 html5 html5-audio getusermedia web-audio-api
我目前正在为音乐家开发基于网络的协作录制平台,类似于移植到网络上的基本DAW(具有额外的社交/共享功能).无论如何,我的目标是让它100%无闪存,所以我一直在阅读很多关于HTML5的内容,特别是Web Audio API(这本书有很多帮助,顺便说一下).
要使用getUserMedia()录制用户麦克风的音频,我制作了RecorderJS的自定义版本.简而言之,我将getUserMedia()的输出路由到ScriptProcessorNode,每4096个样本将inputBuffer的内容写入一个稍后导出到PCM WAV文件的数组.到目前为止,它工作正常.
问题是录制过程的开始涉及两件事:播放所有先前录制的曲目,因此音乐家有一个参考播放,并开始实际录制(将缓冲区写入阵列,即).
虽然当用户正在录制时,麦克风的声音没有听得见的延迟或延迟,但是当录制结束并且播放了所有的轨道时,新录制的轨道稍有延迟.
是什么导致这个?有哪些可能的解决方案?
我以为我可以通过将回放发送到同一处理器节点然后找出它们实际开始的时间来找到两个事件之间的时间差,以补偿任何延迟.为此,我需要让ScriptProcessorNode接收通道1和2上的getUserMedia内容,并在通道3和4上播放,但我无法完成这项工作.我尝试将两个源路由到处理器节点,我也尝试使用Merger/Splitter,但似乎没有任何工作.它们都到达通道1和2上的处理器节点,而3和4则为空.
对不起,如果这是偏离主题或不包含实际代码(我很乐意在必要时提供),但是在这个领域没有太多的东西,所以任何想法都会非常受欢迎.
提前致谢!
小智 1
我正在尝试做同样的事情 - HTML5 多轨录音机。支持 webkit 的东西还没有准备好迎接黄金时段。Recorder.js 非常有前途。http://carolwith.me是一个基于 Flash 的多轨录音机,它完全符合我的要求(除了我也想要 HTML5 而不是 Flash)。看看——这真是令人难以置信的愚蠢!如果你玩它,它也不会真正同步。我还寻求一种算法设置来进行倒计时(预卷),然后根据它设置随后录制的曲目。我找到了一个人,他有一个可能的解决方案,但他放弃了它,然后关闭了他的网站。让我们继续努力吧!自 2010 年以来一直致力于此,我确信最难的部分 (getusermedia) 将成为标准。
归档时间: |
|
查看次数: |
2736 次 |
最近记录: |