我如何将音频从浏览器流传输到服务器?

问题描述 投票:1回答:1

我正在尝试制作一个简单的低延迟记录器。我目前使用以下代码使用Socket.IO捕获和传输音频。但是,只有第一个数据包是可播放的,因为它是唯一包含标头信息的数据包。我也尝试过每秒创建新的流。它不起作用,因为音频会在录制会话之间中断。

我的问题是如何创建一个流,该流从浏览器获取输入,将其传输到服务器(不能对等),并且可以在另一个浏览器中近实时播放。我知道这是可能的,因为像Discord这样的应用程序都在使用它。

这是我当前正在使用的代码。在第一个数据包之后,Chrome会返回以下错误:Uncaught (in promise) DOMExecption: play() failed to load because no supported source was found.

我已经为此工作了好几天,请帮忙!

function schedulePacketSend() { if (recording) { navigator.mediaDevices.getUserMedia({audio:true}).then(function(mediaStream) { const rec = RecordRTC(mediaStream, { type:'audio', mimeType:'audio/webm; codecs=opus', recorderType:StereoAudioRecorder, ondataavailable:function(e){ console.log('sending packet') console.log(e) socket.emit('audio-up', {audio:e.data, client:id}) }, timeSlice:1000 }) rec.startRecording() }); } }

非常感谢,

杰克逊

我正在尝试制作一个简单的低延迟记录器。我目前使用以下代码使用Socket.IO捕获和传输音频。但是,只有第一个数据包是可播放的,因为它是唯一的...

javascript html webrtc audio-streaming mediarecorder
1个回答
0
投票
我不熟悉RecordRTC,但这对Pion WebRTC来说是微不足道的!
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.