我目前正面临一些问题,分享我的屏幕与任何库伦托房间,我加入。目前,我正在使用repo (https://github.com/TribeMedia/kurento-group-call-1)并对代码进行修改,以帮助将屏幕共享设备附加到应用程序中。
目前,我能够做到以下几点:
我面临的问题是,当另一个同伴加入房间时,我得到的是最初参与者的网络摄像头流,而不是屏幕共享。在实现过程中,我遗漏了什么吗?如果有人能帮我的话,我们真的能帮上忙吗?
下面是我实现的代码片段:
在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的网络摄像头流,而不是桌面(已经共享)。P.S. PeerA能够看到,由于某种原因,桌面正在被共享,被发送到PeerB的流是摄像头而不是共享屏幕。
发布于 2017-06-06 01:39:05
好的。因此,在屏幕共享中,您所需要做的就是玩流。
事情是这样的:
客户端:
new kurentoUtils.WebRtcPeer.WebRtcPeerSendrecv(options, function (error)
服务器端:
userSession.outgoingMedia.release();
注意:请记住,在显示流时,要确保html页面上没有复制"div“元素。这会导致一些冲突,您将不会在其他屏幕上接收屏幕共享()。
https://stackoverflow.com/questions/43843576
复制相似问题