相关疑难解决方法(0)

如何解决iOS 11 Safari getUserMedia"无效约束"问题

我试图在iOS 11的Safari中运行以下代码.它应该提示用户访问他们的设备相机,然后在我的<video autoplay id="video"></video>元素中显示它.但是,在iOS 11中运行时,会导致OverconstrainedError抛出:

{message: "Invalid constraint", constraint: ""}
Run Code Online (Sandbox Code Playgroud)
  • 代码在Android中正常运行并成功打开相机.
  • 我尝试了多个有效配置而没有运气.

我知道iOS 11刚出来所以它可能是一个bug,但是有什么想法吗?有没有其他人遇到这个?

码:

var video = document.getElementById('video');
if(navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
     navigator.mediaDevices.getUserMedia({video: true})
         .then(function(stream) {
             video.src = window.URL.createObjectURL(stream);
             video.play();
         })
         .catch(function(err) {
             console.log(err);
         });
}
Run Code Online (Sandbox Code Playgroud)

编辑1

我跑了navigator.mediaDevices.getSupportedConstraints(),它返回以下内容:

{
    aspectRatio: true,
    deviceid: true,
    echoCancellation: false,
    facingMode: true,
    frameRate: true,
    groupId: true,
    height: true,
    sampleRate: false,
    sampleSize: false,
    volume: true,
    width: true
}
Run Code Online (Sandbox Code Playgroud)

我尝试过省略video属性的配置,但没有运气.

javascript media camera ios11

13
推荐指数
3
解决办法
1万
查看次数

iOS 11.3 通过 getUserMedia 和黑屏访问相机

现在 iOS 11.3 已经发布了 Safari 的更新版本。

有没有人能够成功使用 getUserMedia API 将相机输出显示到画布上?

例如我们都打开了

https://simpl.info/getusermedia/

https://webrtc.github.io/samples/src/content/getusermedia/canvas/

在 Safari 中,他们都要求访问相机 - 然而,他们都没有渲染任何东西,只是一个黑色方块

例如

问题截图

javascript canvas ios webrtc getusermedia

3
推荐指数
1
解决办法
3064
查看次数

标签 统计

javascript ×2

camera ×1

canvas ×1

getusermedia ×1

ios ×1

ios11 ×1

media ×1

webrtc ×1