浏览器硬件检测原生js检测是否支持 视屏 音频能力

abilitytest.js 文件
在webrtc 项目中 需要判断浏览器是否支持 调用 视屏音频 功能

import {
  message
} from 'antd';

// 这种方式在各个浏览器都可以(不过在Safari和Firefox浏览器获取的设备信息和在Chrome获取的信息还是不一样的)
export const abilitytest = async () => {
  let isSupport = true
  if (!navigator.mediaDevices || !navigator.mediaDevices.getUserMedia) {
    console.log('不支持获取设备信息!');
    message.warning(
      '当前浏览器不支持获取设备信息!请及时更换浏览器~'
    );
  } else {
    message.info(
      '系统正在获取你的设备信息~'
    );
    // 首先获取到流,获取流成功后再获取设备信息
    await navigator.mediaDevices.getUserMedia({ video: true, audio: true }).then(gotMediaStream).then(gotDevices).catch(handleError);
  }

  // 采集音视频数据成功时调用的方法,获取设备信息
  function gotMediaStream(stream: any) {
    // 为了及时关闭摄像头
    stream.getTracks().forEach(function (track: { stop: () => void; }) {
      track.stop();
    });
    return navigator.mediaDevices.enumerateDevices();

  }

  // 浏览器获取音视频设备成功时调用的方法
  function gotDevices(deviceInfos: any[]) {
    deviceInfos.forEach(function (deviceInfo: { kind: string; label: string; deviceId: string; groupId: string; }) {
      console.log('设备种类=' + deviceInfo.kind + ':设备名 = ' + deviceInfo.label + ';设备id = ' + deviceInfo.deviceId + ';groupId=' + deviceInfo.groupId);
    })
  }

  // 浏览器获取音视频设备失败时调用的方法
  function handleError(err: { name: string; message: string; }) {
    console.log(err.name + ':' + err.message);
    isSupport = false
  }
  return isSupport
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值