diff --git a/public/main.js b/public/main.js index ac3c16a..b07166a 100644 --- a/public/main.js +++ b/public/main.js @@ -186,11 +186,31 @@ var app = new Vue({ this.attachSinkId(document.querySelector('#localVideo'), audioDestination); }, gotStream: function gotStream(stream) { - this.stream = stream; // make stream available to console + console.log('gotStream', this.stream, stream); + if (this.stream) { + const oldVideo = this.stream.getTracks().find(track => track.kind === 'video'); + this.stream.removeTrack(oldVideo); + this.stream.addTrack(stream); + } else { + this.stream = stream; // make stream available to console + } document.querySelector('#localVideo').srcObject = stream; // Refresh button list in case labels have become available return navigator.mediaDevices.enumerateDevices(); }, + shareScreen: async function shareScreen() { + // if (!displayMediaStream) { + const displayMediaStream = await navigator.mediaDevices.getDisplayMedia(); + // } + // senders.find(sender => sender.track.kind === 'video').replaceTrack(displayMediaStream.getTracks()[0]); + + //show what you are showing in your "self-view" video. + // document.getElementById('self-view').srcObject = displayMediaStream; + + //hide the share button and display the "stop-sharing" one + // document.getElementById('share-button').style.display = 'none'; + // document.getElementById('stop-share-button').style.display = 'inline'; + }, handleError: function handleError(error) { console.log('navigator.MediaDevices.getUserMedia error: ', error.message, error.name); }, diff --git a/views/index.ejs b/views/index.ejs index 12af9dc..cfb8934 100644 --- a/views/index.ejs +++ b/views/index.ejs @@ -72,6 +72,8 @@ + + Share screen