Web页面获取摄像头或麦克风

笔者的需求是在应用初始化时需要拿到摄像头 ,拿不到就放弃初始化应用。很多实时音视频都会有这个问题,百度一波后,自己写了一个方法供大家参考。

//检测是否支持媒体采集,设置媒体权限
window.addEventListener("DOMContentLoaded", function() {
    if (navigator.mediaDevices === undefined) {
        alert('未检测到可用的媒体设备!');
        return;
    }

    navigator.getUserMedia = navigator.getUserMedia ||
        navigator.webkitGetUserMedia ||
        navigator.mozGetUserMedia;

    if (navigator.getUserMedia) {
            navigator.getUserMedia({
                audio: true,
                video: true
            },
            function(stream) {
                console.log(`同意开启,关闭摄像头占用`);

                //播放流可以通过document.getElementById('#video').srcObject=stream  播放
                //----------------------------------这里写同意摄像头以后需要做的业务逻辑-----------------------
                

                //这是关闭流的方法----------------start
                let tracks = stream.getTracks();
                for(var i = 0; i < tracks.length; i ++){
                    tracks[i].stop();
                }
                //这是关闭流的方法----------------end


            },
            function(err) {
                alert('请在浏览器设置中允许访问麦克风和摄像头!');
            }
        );
    } else {
        alert('您的设备暂不支持媒体采集!');
    }

}, false);

补充:API调用请查阅https://w3c.github.io/mediacapture-main/getusermedia.html#mediadevices-interface-extensions

如果想做摄像头、麦克风、或者扬声器的切换,可以参考上面的链接。

例如获取指定摄像头流,可以这样写

navigator.getUserMedia({
                video: {deviceId:设备ID}
         })

其他也类似

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值