我是RTCPeerConnection (WEbRTC)的新手,所以请原谅我。
到目前为止,我能够达到我可以通过切换相机或屏幕共享在我的应用程序中替换轨道运行的点。但我注意到它在2个浏览器选项卡中,新替换的轨道流仅在合作伙伴/远程对等中捕获,而不是在发起者的选项卡上。它只是继续显示旧的流,即使流已被替换。
如果发起者也能看到他/她分享的内容,那就太好了。我试过了,但到目前为止还没有运气。寻求帮助。
我的代码如下:
function screenShare(){
(async () => {
try {
await navigator.mediaDevices.getDisplayMedia(
{
cursor: true
}).then(stream => {
// localStream = stream;
let videoTrack = stream.getVideoTracks()[0];
var sender = senders.find(function(s) {
return s.track.kind == videoTrack.kind;
});
sender.replaceTrack(videoTrack);
videoTrack.onended = function(){
sender.replaceTrack(localStream.getTracks()[1]);
}
});
} catch (err) {
console.log('(async () =>: ' + err);
}
})();
}
提前感谢。
按照设计,replaceTrack将替换RTCPeerConnection上的流。这不会影响本地视频对象。重置本地视频元素上的srcObject来改变它。