【发布时间】:2021-05-25 16:08:23
【问题描述】:
我正在构建一个网络应用程序,它在听到响亮的同步噪音(如拍手声)后直接从麦克风录制音频。我正在寻找一种适用于桌面版和安卓版 chrome 的解决方案。
我尝试了以下方法
- 使用脚本处理器节点来监听麦克风并检测大声节点并在之后直接保存原始数据。
这种方法确实有效。但是由于节点在主线程中运行并丢帧,录制的音频很垃圾且有故障。
- 使用 audioWorklet 将音频处理放在不同的线程中,并使用端口将录制的数据发送回主线程。
这种方法效果更好。它适用于 chrome 桌面。但是录制的音频在android上听起来很垃圾。我在 chrome 上提出了一个问题,请参阅票 here
有没有人有其他建议的方法?也许通过某种方式使用 MediaRecorder?但是,我们无法访问原始音频,因此无法判断是否播放了响亮的同步声音,除非有一些聪明的方法。
请注意,我对同步后期录制的方法不感兴趣。
更新
使用脚本处理器节点来监听响亮的掌声并触发 MediaRecorder 启动是一个很好的解决方案!
【问题讨论】:
-
让脚本处理器监听响亮的声音,然后在同一流上触发 mediarecorder?
-
我已经想到了这种方法。我认为这里的问题是时间安排不会很有效。我需要在听到响亮的噪音后立即录制音频。脚本进程只能告诉 MediaRecorder 记录和缓冲区的结束(可能会很大)
-
我会试试这个然后报告
标签: javascript audio web-audio-api mediarecorder audio-worklet