大概需求就是局域网内分享屏幕的一个功能
这个是客户端发送的代码:
// send stream to server
mediaRecorder = new MediaRecorder(stream);
mediaRecorder.ondataavailable = (e) => {
if (e.data.size > 0) {
socket.send(e.data);
}
}
mediaRecorder.start(1000);
服务端转发的代码:
socket.onmessage = (m) => {
broadcast(
room,
m.data
);
};
// broadcast 最后也是直接发送: socket.send(message);
然后客户端接收:
const blob = new Blob([m.data], {type: "video/webm;codecs=vp8"});
video.src = URL.createObjectURL(blob);
客户端最后数据也能接受到,但是就是好像解析不了:
一直转圈圈,求大佬解答!
1
okakuyang 2023-02-18 21:03:30 +08:00
我觉得你可以先不要转发,在同一个网页上试一下能不能自己录制再播放。
另外一个是,你的视频每一次回调只有一秒钟的数据,这个数据是不是太短了,尝试设置更长时间。 |
2
ysc3839 2023-02-18 21:19:22 +08:00 via Android
建议改用 WebRTC
|
3
fzdwx OP |
4
fzdwx OP @okakuyang #1
我看了 ws 数据包,服务端转发的时候 显示的数据是 0b, 但是客户端的 ws 却能接收到数据 ![image]( https://user-images.githubusercontent.com/65269574/219868340-76109402-82f6-4776-b854-ccc4c823782b.png) 然后用 MediaRecorder 在本机能播放的 |