如何在 iOS 上使用 getUserMedia 更改尺寸?

5
自从苹果的iOS 11引入了webRTC和getUserMedia之后,我能够将摄像头的输入获取到

添加一个 .catch(function(e) { console.error(e); }) 可能会显示抛出的错误。 - Philipp Hancke
1个回答

3
这似乎是Safari的一个bug。像width: 306这样的裸值应该表示理想, 但Safari似乎将它们视为精确,除非它完全匹配用户相机提供的驱动程序分辨率,否则会出现错误。
除此之外,Safari似乎与Firefox和Edge等其他浏览器一样工作,目标是寻找相机提供的最佳本地分辨率。
因此,在Safari修复此问题之前,请坚持使用范围。
navigator.mediaDevices.getUserMedia({video: {width: {min: 320, max: 640}}})

...或者使用常见的值和回退策略:

try {
  await navigator.mediaDevices.getUserMedia({video: {width: 320}})
} catch(e) {
  await navigator.mediaDevices.getUserMedia({video: {width: 640}})
}

我如何使用范围并确保比例为16:9? - Koby Douek
请查看您的其他问题。还有“高级”约束条件和尚未实现的“aspectRatio”约束条件。 - jib
投了赞成票,但不能接受这个答案,因为它并没有解决我的问题,只是进一步描述了它。 - Koby Douek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接