| @@ -204,23 +204,27 @@ const Media = { | |||
| }, | |||
| getSelectedMedia: async () => { | |||
| const stream = new MediaStream() | |||
| const addTrack = stream.addTrack.bind(stream) | |||
| const muted = document.querySelector('#mute-check').checked | |||
| if(!muted) { | |||
| const audio = Media.audioDefaults | |||
| const audioStream = await navigator.mediaDevices.getUserMedia({audio}) | |||
| audioStream.getAudioTracks().forEach(track => stream.addTrack(track)) | |||
| await navigator.mediaDevices.getUserMedia({audio}) | |||
| .then(s => s.getAudioTracks().forEach(addTrack)) | |||
| .catch(e => console.error(e)) | |||
| } | |||
| const source = document.querySelector('#media-source').value | |||
| if(source === 'camera') { | |||
| const video = {width: {ideal: 320}, facingMode: 'user', frameRate: 26} | |||
| const videoStream = await navigator.mediaDevices.getUserMedia({video}) | |||
| videoStream.getVideoTracks().forEach(track => stream.addTrack(track)) | |||
| await navigator.mediaDevices.getUserMedia({video}) | |||
| .then(s => s.getVideoTracks().forEach(addTrack)) | |||
| .catch(e => console.error(e)) | |||
| } | |||
| if(source === 'screen' && navigator.mediaDevices.getDisplayMedia) { | |||
| const videoStream = await navigator.mediaDevices.getDisplayMedia() | |||
| videoStream.getVideoTracks().forEach(track => stream.addTrack(track)) | |||
| await navigator.mediaDevices.getDisplayMedia() | |||
| .then(s => s.getVideoTracks().forEach(addTrack)) | |||
| .catch(e => console.error(e)) | |||
| } | |||
| return stream | |||