我有一个 .NET Web应用程序,我在这里用自己的C#控制器从实时音频中以原始PCM字节< / em>。我想通过HTML5 audio element实时流音频。将wav标头添加到原始PCM字节,并通过音频元素将数据作为音频/波形流传输,这没问题。
与another post中类似的问题是,对于所谓的“实时”流式传输,缓冲量往往会过多。直到读取了大约25秒的数据(大约需要5-6秒),音频才开始播放。
我已经考虑使用 MSE(Media Source Extensions)来手动处理缓冲量。但它目前似乎不支持wav格式(source)。
通过在C#中对数据进行实时编码来将数据更改为更受支持的格式(如mp3)有其自身的告诫(即padding 0-bytes),因此,我想尽可能避免这种情况。
在MSE添加对pcm / wav的支持之前,有没有可行的解决办法?
答案 0 :(得分:1)
您可以使用Web Audio API中的ScriptProcessorNode以非常低的延迟播放任意PCM样本。然后,您可以根据需要管理缓冲。
只需将样本转换为±1.0的32位浮点数即可。