Iya*_*saf 8 html5 websocket webrtc getusermedia web-audio-api
我希望从浏览器中获取音频输入并将其传输到多个侦听器.预期用途是音乐,所以质量必须mp3标准或左右.
我尝试了两种方法,都产生了不成功的结果:
的WebRTC
的WebSockets
问题是从浏览器到服务器的传输.我通过以下方法获取的PCM音频数据已被证明太大,无法通过websockets重复流式传输到服务器.该流在高速互联网环境中完美运行,但在较慢的wifi上它无法使用.
var context = new webkitAudioContext()
navigator.webkitGetUserMedia({audio:true}, gotStream)
function gotStream (stream)
{
var source = context.createMediaStreamSource(stream)
var proc = context.createScriptProcessor(2048, 2, 2)
source.connect(proc)
proc.connect(context.destination)
proc.onaudioprocess = function(event)
{
var audio_data = event.inputBuffer.getChannelData(0)|| new Float32Array(2048)
console.log(audio_data)
// send audio_data to server
}
}
Run Code Online (Sandbox Code Playgroud)所以主要的问题是,有没有办法压缩PCM数据,以便更容易流到服务器?或者也许有一个更简单的方法来解决这个问题?
当然,压缩 PCM 数据的方法有很多,但实际上,最好的选择是让 WebRTC 正常工作。WebRTC 旨在实现此目的 - 自适应流媒体 - 尽管您没有定义“多个”侦听器的含义(3 个侦听器和 300,000 个同时侦听器之间存在巨大差异)。
| 归档时间: |
|
| 查看次数: |
7970 次 |
| 最近记录: |