通过H5唤起摄像头前后置转换问题

navigator.mediaDevices.getUserMedia(constraints).then(success).catch(error);

getUserMedia的适配问题暂且不提,只关心如何更换前后置摄像头问题。
其实官方已经给出了一个最简单的方法,只需要配置facingMode参数即可,user为前置,environment为后置

navigator.mediaDevices.getUserMedia({video:{facingMode:'user/environment'}})

在这里插入图片描述
在这里插入图片描述
具体参考链接

当然事情往往不会随着心愿发展,虽然该方法确实可以实现摄像头的选择,但是在兼容性方面确定差了很多,例如该参数即使在安卓上,Chrome for Android也得59版本以上,更别提IOS上的各种问题了。

当然如果系统不能选择,我们是否可以自主选择呢,当然可以,虽然也有限制

navigator.mediaDevices.enumerateDevices().then(gotDevices);

在这里插入图片描述
在这里插入图片描述
具体参考链接

我们可以通过enumerateDevices来获取摄像头和麦克风,其中kind为videoinput的,就是摄像头的设备了,一般应该会有两个,前置和后置,然后我们可以通过deviceId来设置使用的摄像头

navigator.mediaDevices.getUserMedia({video:{deviceId:'实际id'}})

但实际情况下,你并不清楚的知道那个设备时前置,那个设备是后置,通常情况下,应该是最后一个deviceId是后置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值