javascript - socket.io-stream 直播媒体流
问题描述
我尝试通过 socket.io 进行直播。为了实现这个目标,我通过套接字发送 MediaStream 并尝试在 Client: Server 中将其设置为 MediaStream:
navigator.webkitGetUserMedia({
audio: false,
video: {
mandatory: {
chromeMediaSource: 'desktop',
chromeMediaSourceId: remote.getGlobal('screen').window,
minWidth: 0,
maxWidth: 10000,
minHeight: 0,
maxHeight: 10000
}
}
}, gotStream, getUserMediaError);
var ss = require('socket.io-stream')
function gotStream(stream) {
console.log("Got Stream! Starting websocket...");
var video = document.querySelector('video');
video.srcObject = stream
io.on('connection', function(socket) {
ss(socket).emit("stream", stream);
});
}
客户:
<body>
<video id="video" style="position: fixed; width: 100%" id="photo" style="width: 100%" src=""></video>
</body>
<script src="js/socketio.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io-stream/0.9.1/socket.io-stream.js"></script>
<script>
var socket = io('ws://192.168.2.110:3000');
socket.on('img', function(e) {
document.getElementById("photo").src = e;
});
ss(socket).on("stream", function(data) {
document.getElementById("video").srcObject = URL.createObjectURL(data);
});
</script>
解决方案
推荐阅读
- javascript - 如何在 JS/jQuery 中为每个大块数组创建父标签
- android - 我可以使用 Exposed、Kotlin 库来打开和使用以前创建的数据库吗?我该怎么做?
- asp.net-core - 如何在不先加载实体的情况下更新实体
- c++ - DirectX 11 中绑定索引缓冲区的问题
- c - 如何修复未打印树中节点的错误
- java - JobExecutionListenerSupport 中的执行上下文键 NULL
- reactjs - 在没有创建模型的情况下从 Spring 的 React UI 获取状态对象
- javascript - 我怎样才能找出一个值在数组中的频率?
- java - Sqlite-按所需顺序显示结果
- bash - 如何将单行分成 .txt 作为分隔符的行