我正在尝试使用 webrtc 通过 getUserMedia() 获取音频并使用 socket.io 将其发送到服务器(socket.io 支持音频、视频、二进制数据),然后服务器将其广播到所有连接的客户端。问题是当流到达连接的客户端时,它被转换为 JSON 对象而不是媒体流对象。所以我无法发送音频我也尝试过 socket.io-stream 模块,但我没有成功。你能帮我正确捕获音频流并将其发送给所有连接的客户端吗?
这是发送数据的客户端代码
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);
});
Run Code Online (Sandbox Code Playgroud)
在接收客户端时,代码如下
socket.on('receiveaudio' , function(media)
{
console.log(media); //but here i am receiving it as a simple object
other.src= media;
});
Run Code Online (Sandbox Code Playgroud) 大家好,我正在尝试使用 node.js 制作一个 html5 cavas 应用程序,但我遇到了一个问题,我使用 getImagedata() 获取图像数据并将其作为 JSON 对象发送到服务器,服务器将该对象传递给所有连接的客户端但我收到“CanvasRenderingContext2D.putImageData 的参数 1 未实现 ImageData 接口。” 所有其他客户端上的错误。任何帮助将不胜感激,以下是将发送图像的客户端代码:
var output = function(mousestartposition , currentmouseposition){
**lastpositionpic = context.getImageData(0,0,canvas.width , canvas.height);**
var data = {
mousestartposition : mousestartposition ,
currentmouseposition:currentmouseposition,
lastpositionpic : lastpositionpic
}
socket.emit('senddraw' , data);
}
Run Code Online (Sandbox Code Playgroud)
接收图像的客户端代码如下:
socket.on('receivedraw' , function(data)
{
mousestartposition = data.mousestartposition;
var currentmouseposition = data.currentmouseposition;
lastpositionpic = data.lastpositionpic;
**context.putImageData(lastpositionpic,0,0);** // i am getting error on this line
draw(currentmouseposition);
});
Run Code Online (Sandbox Code Playgroud) 我从getUserMeda获取音频流,然后将其转换为blob或缓冲区并将其发送到服务器,因为音频正在进行我使用socket.io将其发送到服务器如何将音频媒体流转换为缓冲区?
以下是我编写的代码
navigator.getUserMedia({audio: true, video: false}, function(stream) {
webcamstream = stream;
var media = stream.getAudioTracks();
socket.emit("sendaudio", media);
},
function(e){
console.log(e);
}
});
Run Code Online (Sandbox Code Playgroud)
如何将流转换为缓冲区并将其发送到node.js服务器,因为流来自getusermedia函数?
javascript ×2
node.js ×2
webrtc ×2
audio ×1
blob ×1
buffer ×1
getusermedia ×1
html ×1
html5-canvas ×1
socket.io ×1