openvidu-electron: cancel screen sharing fix
This commit is contained in:
parent
e4aab3edec
commit
ec6171563a
@ -1,8 +1,9 @@
|
||||
const ipcRenderer = require('electron').ipcRenderer;
|
||||
const BrowserWindow = require('electron').remote.BrowserWindow;
|
||||
|
||||
var OV;
|
||||
var openvidu;
|
||||
var session;
|
||||
var publisher;
|
||||
var screenId;
|
||||
var mySessionId;
|
||||
|
||||
@ -10,13 +11,24 @@ ipcRenderer.on('screen-share-ready', (event, message) => {
|
||||
screenId = message;
|
||||
});
|
||||
|
||||
function initPublisher() {
|
||||
|
||||
openvidu = new OpenVidu();
|
||||
|
||||
const shareScreen = document.getElementById("screen-sharing").checked;
|
||||
if (shareScreen) {
|
||||
openScreenShareModal();
|
||||
} else {
|
||||
publisher = openvidu.initPublisher("publisher");
|
||||
joinSession();
|
||||
}
|
||||
}
|
||||
|
||||
function joinSession() {
|
||||
|
||||
mySessionId = document.getElementById("sessionId").value;
|
||||
|
||||
OV = new OpenVidu();
|
||||
session = OV.initSession();
|
||||
|
||||
session = openvidu.initSession();
|
||||
session.on("streamCreated", function (event) {
|
||||
session.subscribe(event.stream, "subscriber");
|
||||
});
|
||||
@ -24,12 +36,8 @@ function joinSession() {
|
||||
getToken(mySessionId).then(token => {
|
||||
session.connect(token)
|
||||
.then(() => {
|
||||
const shareScreen = document.getElementById("screen-sharing").checked;
|
||||
if (shareScreen) {
|
||||
openScreenShareModal();
|
||||
} else {
|
||||
showSession();
|
||||
var publisher = OV.initPublisher("publisher");
|
||||
showSession();
|
||||
if (!!publisher) {
|
||||
session.publish(publisher);
|
||||
}
|
||||
})
|
||||
@ -69,20 +77,22 @@ function openScreenShareModal() {
|
||||
win.setMenu(null);
|
||||
// win.webContents.openDevTools();
|
||||
win.on('close', async () => {
|
||||
const stream = await navigator.mediaDevices.getUserMedia({
|
||||
audio: false,
|
||||
video: {
|
||||
mandatory: {
|
||||
chromeMediaSource: 'desktop',
|
||||
chromeMediaSourceId: screenId
|
||||
if (!!screenId) {
|
||||
const stream = await navigator.mediaDevices.getUserMedia({
|
||||
audio: false,
|
||||
video: {
|
||||
mandatory: {
|
||||
chromeMediaSource: 'desktop',
|
||||
chromeMediaSourceId: screenId
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
showSession();
|
||||
var publisher = OV.initPublisher("publisher", {
|
||||
videoSource: stream.getVideoTracks()[0]
|
||||
});
|
||||
session.publish(publisher);
|
||||
});
|
||||
showSession();
|
||||
publisher = openvidu.initPublisher("publisher", {
|
||||
videoSource: stream.getVideoTracks()[0]
|
||||
});
|
||||
joinSession();
|
||||
}
|
||||
});
|
||||
|
||||
var theUrl = 'file://' + __dirname + '/modal.html'
|
||||
|
||||
@ -26,7 +26,7 @@
|
||||
|
||||
<div id="join">
|
||||
<h1>Join a video session</h1>
|
||||
<form onsubmit="joinSession(); return false">
|
||||
<form onsubmit="initPublisher(); return false">
|
||||
<p>
|
||||
<label>Session:</label>
|
||||
<input type="text" id="sessionId" value="SessionA" required>
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
<h1>Share your screen</h1>
|
||||
<div id="list-of-screens"></div>
|
||||
<div id="footer">
|
||||
<button id="cancel-btn" onclick="closeWindow()">Cancel</button>
|
||||
<button id="cancel-btn" onclick="cancelSelection()">Cancel</button>
|
||||
<button id="share-btn" onclick="sendScreenSelection()" disabled>Share</button>
|
||||
</div>
|
||||
</body>
|
||||
@ -80,6 +80,11 @@
|
||||
closeWindow();
|
||||
}
|
||||
|
||||
function cancelSelection() {
|
||||
ipcRenderer.send('screen-share-selected', undefined);
|
||||
closeWindow();
|
||||
}
|
||||
|
||||
function closeWindow() {
|
||||
require('electron').remote.getCurrentWindow().close();
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user