1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <html>
- <head>
-
- <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
- }, callback, function (error) {
- errorCallback &&
- errorCallback(error, vid_constraint);
- });
- }
- );
- }
-
- // 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>
|