首页 > 编程语言 >#yyds干货盘点#【愚公系列】2022年11月 微信小程序-多人音视频对话

#yyds干货盘点#【愚公系列】2022年11月 微信小程序-多人音视频对话

时间:2022-11-19 22:32:03浏览次数:44  
标签:yyds openid 微信 房间 音视频 result subscribeVoIPVideoMembers openIdList wx

前言

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

相关属性:

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

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

属性 类型 默认值 必填 说明 最低版本
openid string 进入房间用户的 openid 2.11.0
mode string camera 对话窗口类型,自身传入 camera,其它用户传入 video 2.11.0
device-position string front 仅在 mode 为 camera 时有效,前置或后置,值为front, back 2.11.0
binderror eventhandle 创建对话窗口失败时触发 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'"/>

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);
      }
    })
  })
}

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

标签:yyds,openid,微信,房间,音视频,result,subscribeVoIPVideoMembers,openIdList,wx
From: https://blog.51cto.com/u_15437432/5870800

相关文章

  • #yyds干货盘点# 前端歌谣的刷题之路-第一百六十八题-object.create
     前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了......
  • #yyds干货盘点# 前端歌谣的刷题之路-第一百七十题-bind
     前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了......
  • 音视频方案分享
    Shopee视频处理技术后台应用参考https://mp.weixin.qq.com/s/_GOA-5BptqdiJFzBAS6lYg视频处理的一般流程:视频转码需要经过哪些环节:第一步解码得到YUV画面数据;然......
  • #yyds干货盘点# LeetCode 腾讯精选练习 50 题:2 的幂
    题目:给你一个整数n,请你判断该整数是否是2的幂次方。如果是,返回true;否则,返回false。如果存在一个整数x使得 n==2x,则认为n是2的幂次方。 示例1:输入:n=1输......
  • #yyds干货盘点# 动态规划专题:01背包
    1、简述:描述你有一个背包,最多能容纳的体积是V。现在有n个物品,第i个物品的体积为 ,价值为。(1)求这个背包至多能装多大价值的物品?(2)若背包恰好装满,求至多能装多大价值的物品?输......
  • 2022-11-19 vue+uniapp之微信小程序 video initial-time 无效
    如题,原因:不详,个人推测是因为video没有初始化完成导致initial-time赋值不成功导致。解决方案:给video绑定一个变量,在设置初始化播放时间的时候为false,赋值后设置为true,即:<......
  • 微信小程序自定义双击事件、三连击事件、N连击击事件
     如图:  代码:data:{clickNum:1,lastTapTime:0,}btnclick:function(e){varme=this;varcurTime=e.timeStamp//获取时间戳......
  • #yyds干货盘点#今天聊聊需求分析
    早些年在我刚开始工作时,我认为“需求分析”就是听一听产品经理提的需求,评估下开发可行性和难度,把实现不了的需求砍掉。这么多年过去了,我发现这是最LowLevel的需求分析。原......
  • 博奥智源网站、管理系统和微信小程序设计分享
    1.全国管理办公室账号拥有最高权限,具有各种审核权限,可以查看全国学生信息,开启活动报名通道、平台(如中期评估、暑期活动、在线考试、总结评议等),发布活动通知,查看、汇总、统......
  • #yyds干货盘点# 动态规划专题:小红取数
    1.简述:描述小红拿到了一个数组,她想取一些数使得取的数之和尽可能大,但要求这个和必须是  的倍数。你能帮帮她吗?输入描述:第一行输入两个正整数  和 第二行输入  个正整......