代码之家  ›  专栏  ›  技术社区  ›  Koby Douek Sergey

iOS 11 getUserMedia不工作?

  •  22
  • Koby Douek Sergey  · 技术社区  · 7 年前

    getUserMedia 将在iOS 11上全面运行。在安装iOS 11 Beta版本5后,我确实收到一条消息,我的网站要求访问我的相机和麦克风,但这条线路似乎是:

    video.src = window.URL.createObjectURL(stream);
    

    video.srcObject = stream;
    

    不起作用。没有错误,没有例外,只是手机摄像头没有图片。

    以下是我的完整脚本:

    $(function () {
         video = document.getElementById('vid');
    
         navigator.getUserMedia = navigator.getUserMedia ||
                                  navigator.webkitGetUserMedia ||
                                  navigator.mozGetUserMedia;
    
         navigator.getUserMedia(
         {
             audio: true,
             video: { facingMode: "user" }
         }, function (stream) {
             video.srcObject = stream;
             //video.src = window.URL.createObjectURL(stream);
         },
         function (err) {           
             alert(err.name);
         });
    });
    

    <video id="vid" muted autoplay></video>
    

    有人让它工作了吗?如果您有任何想法,我们将不胜感激。

    1 回复  |  直到 7 年前
        1
  •  24
  •   Koby Douek Sergey    7 年前

    使用以下方法解决该问题:

    $(function () {
        video = document.getElementById('vid');
        video.style.width = document.width + 'px';
        video.style.height = document.height + 'px';
        video.setAttribute('autoplay', '');
        video.setAttribute('muted', '');
        video.setAttribute('playsinline', '');
    
        var constraints = {
             audio: false,
             video: {
                 facingMode: 'user'
             }
        }
    
        navigator.mediaDevices.getUserMedia(constraints).then(function success(stream) {
            video.srcObject = stream;
        });
    });