You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

screen.js 931B

12345678910111213141516171819202122232425262728293031323334
  1. const ScreenShareConfig = {
  2. view() {
  3. const checked = ScreenShare.isOn
  4. const onclick = ScreenShare.toggle
  5. return m('label.styled',
  6. m('input[type=checkbox]', {checked, onclick}),
  7. 'screen-share',
  8. )
  9. }
  10. }
  11. const ScreenShare = {
  12. isOn: false,
  13. start() {
  14. const screen = document.querySelector('video.screen')
  15. navigator.mediaDevices.getDisplayMedia()
  16. .then(s => {screen.srcObject = s})
  17. .catch(e => console.error(e))
  18. },
  19. toggle() {
  20. ScreenShare.isOn = !ScreenShare.isOn
  21. // ScreenShare.start()
  22. },
  23. view() {
  24. const style = {
  25. width: '80%',
  26. height: '80%',
  27. }
  28. return m('video.screen[playsinline][autoplay]', {style})
  29. },
  30. }
  31. addEventListener('load', () => {
  32. Headers.push([ScreenShareConfig])
  33. Apps.push([ScreenShare, {key: 'screen-share-container'}])
  34. })