
首先,想到的是利用 Audio 标签,Audio 标签可以直接播放 MP3 格式,服务端将实时音频流编码成 MP3 格式
通过 Http 方式传给 Web 端即可
HTML5 提供了 audio 标签播放音频,代码比较简单,但有缓冲过大问题,粗略测试了下延时 20-30s 左右,这显然不能满足实时在线播放的要求,这需要其他的解决方案
Audio 标签的方式不行,想到利用 Web Audio API 是实现,基本的思路是:通过 WebSocket 接收服务端推送过来的音
频流( MP3 格式)调用 decodeAudioData 进行解码,最后将解码数据推送到 AudioContext
不知各位大佬有什么指点的,现在还在尝试和探索中。。。
谢谢各位大佬。
1 matepi 2020 年 4 月 24 日 H5 live stream 有标准的为啥不用呢 mozilla 文档先翻翻? https://developer.mozilla.org/en-US/docs/Web/Guide/Audio_and_video_delivery/Live_streaming_web_audio_and_video |
2 learningman 2020 年 4 月 24 日 via Android 延时 20s 是怎么做到的。。。20 秒一首普通音乐都能下载完了吧 |
3 gaodeng 2020 年 4 月 24 日 可以试试 hls,现成的方案,为啥要去造轮子。 |
4 cydian 2020 年 4 月 24 日 via Android @learningman 他应该说的是跟直播一样。 只不过传的是音频,而不是音视频 |
6 lbw 2020 年 4 月 24 日 AudioContext + WebSocket 基本没有延时,瓶颈在网络 |
8 fancy111 2020 年 4 月 24 日 webrtc 满足你一切需求 |
10 xylxsss 2020 年 4 月 24 日 MSE,往里面塞音频缓存就完事了 |
11 sparrww 2020 年 4 月 24 日 类似网站 有兴趣自己研究 domeet.net |
12 gggxxxx 2020 年 4 月 24 日 hls 啊,行业直播标准。 如果是即时聊天那种,允许丢包的 rtp 才是。 |
13 catinsides 2020 年 4 月 24 日 服务端转成无画面音视频流,浏览器用播放器拉流,然后将播放器隐藏 |