通过websocket

时间:2015-09-11 14:30:30

标签: websocket streaming audio-streaming pcm

我一直在努力解决以下问题,无法找到解决方案。提供的java服务器应用程序通过websocket连接以块的形式发送pcm音频数据。没有标题等我的任务是在浏览器中播放这些原始的音频数据块,没有任何延迟。在早期版本中,我使用了audioContext.decodeAudioData,因为我在开始时获得了带有44字节头的完整数组。现在没有标头,因此无法使用decodeAudioData。我会非常感谢任何建议和提示。也许我会使用一些JS解码库,任何示例或链接都会对我有所帮助。 感谢。

1 个答案:

答案 0 :(得分:1)

1)您的要求"在浏览器中播放这些原始的音频数据块,没有任何延迟。不可能。总是有一些时间来发送音频,接收和播放音频。阅读术语"延迟。"首先,你必须得到一个现实的要求。它可能是1秒或50毫秒,但你需要得到一些真实的东西。

2)Web套接字使用tcp。 TCP旨在用于可靠的通信,拥塞控制等。它不是为快速低延迟通信而设计的。

3)提供有关您的问题的更多信息。您的客户端和服务器是通过Internet还是通过本地Lan进行通信?这将极大地影响您的表现和设计。

4)44字节头是一个wav文件头。它告诉数据类型(采样率,单声道/立体声,每个样本的比特)。您必须知道此信息才能播放音频。 IF 你知道PCM类型,你可以自己插入它并像以前一样使用你的解码器。否则,您需要手动构建音频播放器。

通过网络流式传输音频并非易事。