我目前与加入的任何Kurento会议室共享屏幕时遇到一些问题。现在,我正在使用存储库(https://github.com/TribeMedia/kurento-group-call-1)并对代码进行修改,以帮助将屏幕共享概念附加到应用程序。
目前,我能够执行以下操作:
获取单击共享屏幕按钮时出现的屏幕/窗口弹出窗口(使用muaz khan(https://github.com/muaz-khan/getScreenId)的getScreenId.js)>] >>
选择所需的应用程序/窗口后,将其显示为用户的本地流(以实际查看正在共享的内容),然后重新建立rtc连接。
我面临的问题是,当另一个同龄人加入会议室时,我得到会议室中最初参与者的网络摄像头流,而不是屏幕共享。在实现过程中我缺少什么?如果有人可以帮助我,我们真的会有所帮助!
以下是我已实现的代码段:
在index.html中:
<button id="sharescreen" disabled="disabled" onClick="shareScreen()">Share Screen</button>
在客户端js代码中:```
function shareScreen(){ var audioConstraints = { audio: false, video: true, }; navigator.getUserMedia(audioConstraints, function(stream) { initiateScreenSharing(stream); }, function(error) { console.error("Could not get audio stream! " + error); }); } function initiateScreenSharing(audioStream){ getScreenId(function (error, sourceId, screen_constraints) { console.log("screen_constraints"); console.log(screen_constraints); navigator.getUserMedia = navigator.mozGetUserMedia || navigator.webkitGetUserMedia; navigator.getUserMedia(screen_constraints, function (stream) { console.log(stream); var constraints = { audio: true, video: { frameRate: { min: 1, ideal: 15, max: 30 }, width: { min: 32, ideal: 50, max: 320 }, height: { min: 32, ideal: 50, max: 320 } } }; var localParticipant = new Participant(sessionId); participants[sessionId] = localParticipant; localVideo = document.getElementById("local_video"); var video = localVideo; var options = { localVideo: video, videoStream: stream, mediaConstraints: constraints, onicecandidate: localParticipant.onIceCandidate.bind(localParticipant), sendSource: 'desktop' }; localParticipant.rtcPeer = new kurentoUtils.WebRtcPeer.WebRtcPeerSendrecv(options, function (error) { if (error) { return console.error(error); } // Set localVideo to new object if on IE/Safari localVideo = document.getElementById("local_video"); // initial main video to local first localVideoCurrentId = sessionId; //localVideo.src = localParticipant.rtcPeer.localVideo.src; localVideo.muted = true; console.log("local participant id : " + sessionId); this.generateOffer(localParticipant.offerToReceiveVideo.bind(localParticipant)); }); }, function (error) { console.error(error); }); }); }
```
例如:
[如果PeerA第一次加入会议室并共享桌面,而PeerB加入同一会议室,则PeerB将看到PeerA的网络摄像头流而不是桌面(已共享)。附言由于某种原因,PeerA能够真正看到桌面正在共享,而发送到PeerB的流是网络摄像头而不是共享屏幕。
我目前与加入的任何Kurento会议室共享屏幕时遇到一些问题。现在,我正在使用仓库(https://github.com/TribeMedia/kurento-group-call-1)并在...
好的。因此,事实证明,您在屏幕共享中所需要做的就是播放流。
这是怎么回事:
您能否分享代码或一些github链接。