当前位置:   article > 正文

【愚公系列】2022年04月 微信小程序-多人音视频对话_微信小程序 多人音视频对话

微信小程序 多人音视频对话


前言

微信小程序开发多人音视频对话首先得去小程序管理后台,「开发」-「接口设置」中自助开通该组件权限。

相关属性:

一级类目/主体类型二级类目小程序内容场景
教育在线视频课程网课、在线培训、讲座等教育类直播
医疗互联网医院,公立医院问诊、大型健康讲座等直播
医疗私立医疗机构/
金融银行、信托、基金、证券/期货、证券、期货投资咨询、保险、征信业务、新三板信息服务平台、股票信息服务平台(港股/美股)、消费金融金融产品视频客服理赔、金融产品推广直播等
汽车汽车预售服务汽车预售、推广直播
政府主体帐号/政府相关工作推广直播、领导讲话直播等
IT 科技多方通信在线会议
快递业与邮政寄件/收件视频客服

开通该组件权限后,开发者可在 joinVoIPChat 成功后,获取房间成员的 openid,传递给 voip-room 组件,以显示成员画面。

属性类型默认值必填说明最低版本
openidstring进入房间用户的 openid2.11.0
modestringcamera对话窗口类型,自身传入 camera,其它用户传入 video2.11.0
device-positionstringfront仅在 mode 为 camera 时有效,前置或后置,值为front, back2.11.0
binderroreventhandle创建对话窗口失败时触发2.11.0

一、多人音视频对话

相关API接口说明:

  • 创建/加入房间:wx.joinVoIPChat
  • 离开房间:wx.exitVoIPChat
  • 更新房间麦克风/耳机静音设置:wx.updateVoIPChatMuteConfig
  • 监听房间成员变化:wx.onVoIPChatMembersChanged
  • 监听房间成员通话状态变化:wx.onVoIPChatSpeakersChanged
  • 监听通话中断:wx.onVoIPChatInterrupted
  • 监听实时语音通话成员视频状态变化:wx.onOnVoIPVideoMembersChanged

1.wxml

<!-- wxml -->
<voip-room class="video" v-for="item in openid_list" :key="item" :openid="item" :mode="my_openid == item ? 'camera': 'video'"/>
  • 1
  • 2

2.js

// js
async joinRoom(){
  // 获取自己的openid;
  const my_openid = await getOpenId();
  this.my_openid = my_openid.openid;

  // 加入房间并获取openid列表
  const result = await getOpenIdList(cache.join_param);
  this.openid_list = result.openIdList;

  // 订阅视频成员, 避免人超过两个显示不了视频.
  wx.subscribeVoIPVideoMembers({
    openIdList: result.openIdList,
    success(res){
      console.log('subscribeVoIPVideoMembers ok', res);
    },
    fail(err){
      console.log('subscribeVoIPVideoMembers fail', err);
    }
  })

  // 成员变化时修改openid列表;
  wx.onVoIPChatMembersChanged((result) => {
    console.log('member change', result);
    this.openid_list = result.openIdList;
  })

  // 视频成员变化时重新订阅视频成员
  wx.onVoIPVideoMembersChanged((result)=>{
    wx.subscribeVoIPVideoMembers({
      openIdList: result.openIdList,
      success(res){
        console.log('subscribeVoIPVideoMembers ok', res);
      },
      fail(err){
        console.log('subscribeVoIPVideoMembers fail', err);
      }
    })
  })
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

备注:
getOpenId() 函数用于获取自己的openid,getOpenIdList() 封装了wx.joinVoIPChat返回值为房间中的人的openid列表,最后别忘记退出房间时调一下wx.exitVoIPChat。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/605986
推荐阅读
相关标签
  

闽ICP备14008679号