简单使用webRtc进行音频传输

一、麦克风获取音频

if (!navigator.mediaDevices.getUserMedia) {
    ElMessage.error("浏览器不支持音频输入!");
  } else {
    navigator.mediaDevices
      .getUserMedia(constraints)
      .then(async (mediaStream: any) => {
        let strem = mediaStream;//音频信息,视频同理
      })
      .catch((error) => {
        switch (error.message || error.name) {
          case "PERMISSION_DENIED":
          case "PermissionDeniedError":
            ElMessage.error("用户拒绝提供信息!");
            break;
          case "NOT_SUPPORTED_ERROR":
          case "NotSupportedError":
            ElMessage.error("浏览器不支持硬件设备!");
            break;
          case "MANDATORY_UNSATISFIED_ERROR":
          case "MandatoryUnsatisfiedError":
            ElMessage.error("无法发现指定的硬件设备!");
            break;
          default:
            ElMessage.error("无法打开麦克风。异常信息:" + (error.code || error.name));
            break;
        }
      });
  }

二、实例化一个webRtc对象,并将音频信息添加进去

        pc = new RTCPeerConnection();
        pc.addTransceiver("audio", { direction: "sendonly" });
        mediaStream.getTracks().forEach((track: MediaStreamTrack) => {
          pc.addTrack(track, mediaStream);
        });

三、发送webRtc请求

       const offer = await pc.createOffer();
       pc.setLocalDescription(offer);

四、使用信令服务器进行媒体流传输

 // 连接信令服务器中转
        const { data: resp } = await axios({
          method: "post",
          url: "",
          data: {
            api: "",
            clientip: null,
            streamurl: ``,
            sdp: offer.sdp  /、信息
          }
        });

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值