Мне нужно подключить пользовательские средства отображения (захват экрана) к приложению webRT C.
Следующий код используется для запуска захвата экрана:
navigator.mediaDevices.getDisplayMedia({video: true})
Это запрашивает Пользователь о снимке экрана и создает видеопоток, который может быть использован после получения разрешения. Однако я не смог запустить его на устройствах iOS или Android.
iPad, на котором я тестировал этот продукт, не смог найти navigator.mediaDevices.getDisplayMedia - undefined
(iOS 13.3)
Chrome (v79) на Android показывает следующую ошибку при попытке вызвать ее:
DOMException: недопустимое состояние
в соответствии с этим: https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia ошибка может быть сгенерирована, если код не был инициирован действием пользователя, но это не должно быть проблемой в моем случае, так как код вызывается так:
startScreenSharing = event => {
navigator.mediaDevices.getDisplayMedia({video: true})
}
<Button onClick={this.startScreenSharing} />
Переменная event содержит допустимое событие, но я все еще получаю ошибку «Invalid State».
Это должно быть что-то, чего мне не хватает, так как она отлично работает на рабочем столе Chrome & Safari.
Редактировать
Я сталкивался с этим: Демонстрация getDisplayMedia и запись экрана и с той же ошибкой, сгенерированной на этой веб-странице. Это может быть связано с настройками моего аппаратного устройства?