我正在尝试通过 USB 麦克风录制现场音频,将其转换为 WAV 并上传到服务器。我在 Windows XP 上使用 Chrome Canary(最新版本)。我的开发基于以下示例http://webaudiodemos.appspot.com/AudioRecorder/index.html http://webaudiodemos.appspot.com/AudioRecorder/index.html
我发现当我激活录音时,onaudioprocess 事件输入缓冲区(例如 e.inputBuffer.getChannelData(0))都是零值数据。当然,在这种情况下,不会有声音输出或记录。我已经通过用产生输出 WAV 文件中显示的音调的数据替换输入缓冲区数据来验证了代码的其余部分。当我使用 createMediaStreamSource 以外的方法时,一切正常。例如,我可以使用 createObjectURL 并将 src 设置为它,并成功地听到实时播放的现场音频。我还可以加载音频文件并使用 createBufferSource,看到在播放期间(我听到),inputBuffer 中当然有非零数据。
由于我在网上看到的大多数网络音频录制演示都依赖于 createMediaStreamSource,我猜测这在 Chrome 的后续版本中已被无意中破坏。谁能证实这一点或建议如何克服这个问题?
可能不是 Chrome 的版本。目前实时输入仍然有一些很高的要求:
1) Windows 上输入和输出采样率需要相同
2) 仅限 Windows 7+ - 我不相信它能在 Windows XP 上运行,这可能会让你崩溃。
3) 输入设备必须是立体声(或 >2 个通道) - 许多(如果不是大多数)USB 麦克风显示为单声道设备,并且网络音频尚不能与它们配合使用。
当然,我假设我的 AudioRecorder 演示也不适合您。
随着时间的推移,这些限制将被消除。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)