收听实时音频流
Posted
技术标签:
【中文标题】收听实时音频流【英文标题】:Listen to an live audio stream 【发布时间】:2021-09-20 03:38:22 【问题描述】:我目前正在使用标准套接字从 c++ 流式传输我的麦克风。现在我想从网络上听这个流。 我曾尝试直接从音频标签访问流,但这不起作用。
我也尝试将内容类型设置为音频/wav,但这也没有用。
我尝试写入文件并直接从音频元素访问它,但它没有将新写入的部分添加到音频元素。它也从音频的开头开始,我读到它有很高的延迟。
有没有办法以极低的延迟传输音频?
我考虑过每 50 毫秒发出一次获取请求并将新数据添加到音频或录制 50 毫秒的音频并在最后一个剪辑的末尾更改音频的 src。
【问题讨论】:
【参考方案1】:通过 WebSocket 流式传输音频缓冲区,然后尝试使用 <audio>
元素播放它不是要走的路。
以低延迟将音频流式传输到浏览器的方法是使用WebRTC。
WebRTC 内置于浏览器中,可实现点对点实时通信。
也就是说,您可以使用 C++ 中的一些 WebRTC 实现,例如 libwebrtc 或 Gstreamer 来流式传输您的麦克风输入,然后使用浏览器上的本机 javascript API 接收音频流并将其放置在 @987654325要在浏览器中侦听的 <audio>
元素的 @ 属性。
【讨论】:
以上是关于收听实时音频流的主要内容,如果未能解决你的问题,请参考以下文章