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

时间:2019-01-23 04:13:55

标签: javascript html html5 webview webrtc

在我的网站上,它需要访问摄像头或网络摄像头。但是基于https://forums.developer.apple.com/thread/88052的ios webview尚不支持webRTC(请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 :(得分:5)

坏消息:

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

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

  

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

好消息:

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

其他新闻:

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

如果您想自己测试getUserMedia或WebRTC函数,请尝试使用These provided samples,这样可以确保这不是您自己的代码的错:)