使用最新版本的 simple-peer (^9.11.0")。
使用反应前端。
根据官方文档(https://www.npmjs.com/package/simple-peer)和(https://github.com/feross/simple-peer),明确提到,我们可以通过添加track
peer.addTrack(track, stream);
下面是我将共享屏幕媒体轨道添加到现有对等点的代码:
navigator.mediaDevices.getDisplayMedia({ cursor: true, video:true, audio: {restrictOwnAudio: true,}}).then(stream => {
const screenTrack = stream.getTracks()[0];
console.log("screenTrack", screenTrack);
for (let [peer_name, value] of Object.entries(peerlistRef.current)) {
console.log("peer :", peer_name, "value", value);
console.log("before adding", peerlistRef.current[peer_name].streams[0].getTracks())
console.log("before adding", peerlistRef.current[peer_name].streams)
console.log("peerlistRef.current[peer_name]", peer_name, peerlistRef.current[peer_name])
console.log("stream.getVideoTracks()", stream.getVideoTracks());
peerlistRef.current[peer_name].addTrack(stream.getVideoTracks()[0], stream)
console.log("after adding", peerlistRef.current[peer_name].streams[0].getTracks())
}
})
添加曲目 ( peer.addTrack(stream.getVideoTracks()[0], stream)
) 不起作用。但是,更换轨道有效!任何建议/帮助表示赞赏。