2022-07-26 09:07:19 +00:00
|
|
|
<!doctype html>
|
2016-03-11 13:04:21 +00:00
|
|
|
<html>
|
|
|
|
<head>
|
2022-07-26 09:07:19 +00:00
|
|
|
<title>Jitsi NW GUI</title>
|
2016-03-11 13:04:21 +00:00
|
|
|
<style>
|
|
|
|
body {
|
|
|
|
margin: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
iframe {
|
|
|
|
width: 100%;
|
|
|
|
height: 100%;
|
|
|
|
border: 0 none;
|
|
|
|
}
|
|
|
|
</style>
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<script>
|
|
|
|
var gui = require('nw.gui');
|
|
|
|
var screenInitialized = false;
|
|
|
|
function obtainDesktopStream (callback, errorCallback) {
|
|
|
|
if (!screenInitialized) {
|
|
|
|
gui.Screen.Init();
|
|
|
|
screenInitialized = true;
|
|
|
|
}
|
|
|
|
gui.Screen.chooseDesktopMedia(
|
|
|
|
["window","screen"],
|
|
|
|
function(streamId) {
|
|
|
|
var vid_constraint = {
|
|
|
|
mandatory: {
|
|
|
|
chromeMediaSource: 'desktop',
|
|
|
|
chromeMediaSourceId: streamId,
|
|
|
|
maxWidth: 1920,
|
|
|
|
maxHeight: 1080
|
|
|
|
},
|
|
|
|
optional: []
|
|
|
|
};
|
|
|
|
navigator.webkitGetUserMedia({
|
|
|
|
audio: false, video: vid_constraint
|
2016-05-25 12:04:48 +00:00
|
|
|
}, callback, function (error) {
|
|
|
|
errorCallback &&
|
|
|
|
errorCallback(error, vid_constraint);
|
|
|
|
});
|
2016-03-11 13:04:21 +00:00
|
|
|
}
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
// use Esc to leave fullscreen mode
|
|
|
|
nw.App.registerGlobalHotKey(new nw.Shortcut({
|
|
|
|
key: "Escape",
|
|
|
|
active: function () {
|
|
|
|
var win = nw.Window.get();
|
|
|
|
if (win.isFullscreen) {
|
|
|
|
win.leaveFullscreen();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}));
|
|
|
|
|
|
|
|
// create iframe with jitsi-meet
|
|
|
|
var iframe = document.createElement('iframe');
|
|
|
|
iframe.src = nw.App.manifest['jitsi-url'];
|
|
|
|
iframe.allowFullscreen = true;
|
|
|
|
iframe.onload = function () {
|
|
|
|
iframe.contentWindow.JitsiMeetNW = {
|
|
|
|
obtainDesktopStream: obtainDesktopStream
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
document.body.appendChild(iframe);
|
|
|
|
</script>
|
|
|
|
</body>
|
|
|
|
</html>
|