无需webRTC即可访问摄像头或摄像头

Alv*_*ora 2 html javascript html5 webview webrtc

在我的网站上,它需要访问摄像头或网络摄像头。但是基于https://forums.developer.apple.com/thread/88052(请使用cmiiw)的ios webview尚不支持webRTC。因此,我试图找到一种无需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} }
    })
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果是,那么不使用webRTC并可以在android webview,ios webview和Web浏览器上运行的解决方法是什么?

小智 5

坏消息:

iOS WebView不支持getUserMedia,这意味着您将完全无法访问用户的相机。截至2019年1月尚无解决方法。我也在等待getUserMediaiOS WebViews的支持,所以我感到您很痛苦。

每当我对这样的浏览器功能有疑问时,我都会发现caniuse.com非常有用。在这种情况下,它表明支持iOS的最新版本的Safari和Chrome(2018年9月发布)getUserMedia,但是它...

在独立运行(“已安装”)的PWA中不起作用,getUserMediaUIWebView或中不返回任何视频输入设备WKWebView,而仅在Safari中直接返回。

好消息:

如果您只是想让您的网站在iOS设备上工作,那么您很幸运。除非您要为App Store制作应用程序,否则不需要使用WebViewgetUserMedia适用于在iOS上使用Safari浏览您的网站的用户!而且,如果有帮助,您的用户甚至可以将指向您网站的链接添加到iOS的主屏幕上,这使其看起来非常像一个应用程序。

其他新闻:

getUserMedia控制对用户相机和麦克风的访问,而WebRTC可帮助您音频/视频发送到另一个客户端,例如在视频聊天中。在这里,您首先要获取视频,因此您不必担心WebRTC,但是当您这样做时,建议您阅读这篇对我有所帮助的文章

而且,如果您想getUserMedia自己进行测试或WebRTC功能,请尝试使用提供的这些示例,以确保这不是您自己的代码的错:)