Доступ к камере или веб-камере без webRTC - PullRequest
0 голосов
/ 23 января 2019

На моем сайте требуется доступ к камере или веб-камере.Но webRTC пока не поддерживается в ios webview на основе https://forums.developer.apple.com/thread/88052 (пожалуйста, cmiiw).Итак, я пытаюсь найти способ получить к нему доступ без webRTC.Есть ли?

  1. И является ли этот следующий код частью использования webRTC?Потому что console.log отображается на ios webview

    function hasGetUserMedia() {
      return !!(navigator.getUserMedia || navigator.webkitGetUserMedia || 
        navigator.mozGetUserMedia || navigator.msGetUserMedia);
    }
    
    //then, somewhere in the code
    if (!hasGetUserMedia()) {           
      console.log( "webRTC is not supported in your browser" );//it shows up on ios webview              
    }
    
    //other code
    navigator.mediaDevices.getUserMedia({
     audio: false, //no audio
     video: {deviceId: {exact: videoSource.camera_id} }
    })
    
  2. Если да, то каков обходной путь, который не использует webRTC, и может быть запущен на android webview, ios webview и webбраузеры?

1 Ответ

0 голосов
/ 25 января 2019

Плохие новости:

Веб-приложения iOS не поддерживают getUserMedia, что означает, что вы вообще не сможете получить доступ к камере пользователя. Начиная с января 2019 г. обходного пути не существует. Я также жду поддержки getUserMedia в iOS WebViews, поэтому я чувствую вашу боль.

Всякий раз, когда у меня возникают вопросы о таких функциях браузера, я считаю очень полезным проверить caniuse.com . В этом случае это показывает, что последняя версия Safari & Chrome для iOS (выпущенная в сентябре 2018 года) поддерживает getUserMedia, но это ...

Не работает в автономно работающих («установленных») PWA, getUserMedia не возвращает никаких устройств видеовхода в UIWebView или WKWebView, но только непосредственно в Safari.

Благая весть:

Если вы просто заинтересованы в том, чтобы ваш сайт работал на устройствах iOS, то вам повезло. Вам не нужно использовать WebView, если вы не создаете приложение для App Store . getUserMedia будет работать для пользователей, которые посещают ваш сайт с помощью Safari на iOS! И если это поможет, ваши пользователи могут даже добавить ссылку на ваш сайт на свой домашний экран на iOS, что очень похоже на приложение.

Другие новости:

getUserMedia контролирует доступ к камере и микрофону пользователя, тогда как WebRTC помогает вам отправлять это аудио / видео другому клиенту, как в видеочате. Во-первых, вы застряли на получении видео, поэтому вам не нужно беспокоиться о WebRTC, но когда вы это сделаете, я рекомендую вам прочитать Эта статья , которая помогла мне.

И если вы хотите самостоятельно протестировать getUserMedia или функции WebRTC, попробуйте использовать Эти предоставленные образцы , чтобы вы могли быть уверены, что это не ошибка вашего собственного кода:)

...