Electron desktopCapturer.getSources (). Тогда не является функцией - PullRequest
1 голос
/ 01 мая 2019

Разработка электронного приложения в Windows 10 Pro версии 1809. Наше приложение имеет окно браузера, которое отображается, когда пользователь нажимает комбинацию горячих клавиш.Окно браузера вызывает 'renderer.js'

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Audio Visualizer</title>
  </head>
  <body>

    <!-- Content -->

    <script>
      require('./renderer.js')
    </script>
  </body>
</html>

Файл renderer.js обрабатывает взаимодействия с пользователем в этом окне браузера и пытается захватить аудио пользователя, используя desktopCapturer, используя экран (весь экран) какисточник.

Я следовал документации по электронным документам, но мы получаем ошибку desktopCapturer.getSources().then is not a function

Это renderer.js файл

desktopCapturer.getSources({ types: ['window', 'screen'] }).then(async sources => {
  for (const source of sources) {
    if (source.name === 'Electron') {
      try {
        const stream = await navigator.mediaDevices.getUserMedia({
          audio: {
            mandatory: {
             chromeMediaSource: 'desktop',
             chromeMediaSourceId: source.id 
            }
          },
          video: false
        })
        handleStream(stream)
      } catch (e) {
        handleError(e)
      }
      return
    }
  }
})

function handleStream (stream) {
  // create audio context and show audio visulaizaio
}

function handleError (e) {
  console.log(e)
}

Наш код в основномпрямое копирование / вставка из примера, включенного в электронные документы.Чего нам не хватает, что мы получаем эту ошибку?

Я знаю, что в macOS есть ограничение на создание потока в другом файле what (а не navigator.mediaDevices.getUserMedia), но я не думаю, что ограничение связано с этой ошибкоймы сталкиваемся.

...