2
我想通過getUserMedia()使用webrtc並使用socket.io將音頻發送到服務器(socket.io支持音頻,視頻,binarydata)然後服務器會將其廣播給所有連接的客戶端。問題是當流到達連接的客戶端時,它被轉換成JSON對象而不是媒體流對象。所以我無法發送音頻我也嘗試過socket.io-stream模塊,但我沒有成功。你能幫我正確捕獲音頻流併發送給所有連接的客戶端。在node.js中使用socket.io通過webrtc廣播現場音頻
下面是客戶端的代碼誰發送數據
navigator.getUserMedia({audio: true, video: false}, function(stream) {
video.src = window.URL.createObjectURL(stream);
webcamstream = stream;
media = stream; /// here the datatype of media is mediaStream object
socket.emit("sendaudio", media);
}, function(e){
console.log(error);
});
雖然在收到客戶端的代碼如下
socket.on('receiveaudio' , function(media)
{
console.log(media); //but here i am receiving it as a simple object
other.src= media;
});
我想你的目標應該是發送二進制數據,如'Buffer'或'Blob'對象。 Socket.io自1.0開始支持二進制數據。 嘗試將您將mediaStream對象轉換爲緩衝區,然後發送它。另一方面,根據緩衝區重新創建對象。 –
@MaximePiraux你可以發送任何好的教程或例子的鏈接,可以幫助我將媒體流轉換成緩衝區或blob.i發現它很難做到。 –