当前位置: 首页 > 知识库问答 >
问题:

使用live-pusher和live-player标签,微信小程序如何实现视频通话接听前的功能?

崔琦
2024-11-04

微信小程序做视频通话功能,接听前的页面和逻辑怎么写?

微信小程序利用live-pusher和live-player标签实现视频通话功能,live-pusher和live-player这两个标签的使用基本能弄懂,但对接听前的页面还有逻辑完全不懂
接听前弹出的画面需要搭配VoIP通话插件一起使用吗?如果有通话怎么监听到并弹出待接听画面呢?

共有1个答案

杭昊空
2024-11-04

在微信小程序中实现视频通话功能,并在接听前显示待接听页面:

1. 申请开通VoIP通话插件

登录微信小程序管理后台,进入“开发” -> “开发管理” -> “接口设置”,找到并申请开通“VoIP通话插件”权限。

2. 设置接听状态

在小程序启动时,使用 wx.setEnable1v1Chat 接口将用户的接听状态设置为 true。这个设置在小程序每次冷启动后需要重新设置。

// app.js
App({
  onLaunch() {
    wx.setEnable1v1Chat({
      enable: true
    });
  }
});

3. 监听通话邀请

使用 wx.onVoIPChatMembersChanged 监听房间成员变化,当有新的通话邀请时,触发待接听页面的显示。

// index.js
Page({
  onLoad() {
    wx.onVoIPChatMembersChanged((res) => {
      if (res.members.length > 1) {
        wx.navigateTo({
          url: '/pages/waiting/waiting'
        });
      }
    });
  }
});

4. 显示待接听页面

在监听到通话邀请后,使用 wx.navigateTowx.redirectTo 跳转到待接听页面。待接听页面可以显示来电者信息,并提供接听和拒绝按钮。

// waiting.js
Page({
  data: {
    callerInfo: {}
  },
  onLoad(options) {
    // 获取来电者信息
    this.setData({
      callerInfo: options.callerInfo
    });
  },
  acceptCall() {
    wx.join1v1Chat({
      caller: this.data.callerInfo,
      listener: { /* 当前用户信息 */ }
    });
  },
  rejectCall() {
    wx.exitVoIPChat();
  }
});

5. 接听通话

在待接听页面中,用户点击接听按钮后,调用 wx.join1v1Chat 接口加入通话。

6. 使用live-pusher和live-player标签

在通话页面中,使用 live-pusherlive-player 标签来实现视频通话功能。live-pusher 用于推流,live-player 用于播放对方的视频流。

<!-- call.js -->
<view class="container">
  <live-pusher id="pusher" mode="RTC" autopush="true" bindstatechange="statechange" />
  <live-player id="player" mode="RTC" autoplay="true" bindstatechange="statechange" />
</view>
// call.js
Page({
  data: {
    pusherContext: null,
    playerContext: null
  },
  onReady() {
    this.setData({
      pusherContext: wx.createLivePusherContext(),
      playerContext: wx.createLivePlayerContext()
    });
  },
  statechange(e) {
    console.log('live-pusher code:', e.detail.code);
  }
});

7. 处理通话结束

监听通话结束事件,并在通话结束后进行相应处理。

// app.js
App({
  onLaunch() {
    wx.setEnable1v1Chat({
      enable: true
    });
    wx.onVoIPChatInterrupted(() => {
      wx.showToast({
        title: '通话已结束',
        icon: 'none'
      });
    });
  }
});
 类似资料:
  • 微信小程序怎么用原生的live-player和live-pusher实现多人视频通话? 不要使用第三方SDK的方式去实现多人视频通话,就是使用直播推拉流的方式实现,这样可以实现多人视频通话吗?

  • 直播组件 属性 类型 默认值 必填 说明 src string 否 音视频地址。 mode string live 否 模式 autoplay boolean false 否 自动播放 muted boolean false 否 是否静音 orientation string vertical 否 画面方向 object-fit string contain 否 填充模式,可选值有 contain

  • 本文向大家介绍微信小程序实现签字功能,包括了微信小程序实现签字功能的使用技巧和注意事项,需要的朋友参考一下 效果展示   准备工作 1.canvas的使用 主要用到了 bindtouchstart , bindtouchmove 两个属性,捕捉手指移动的同时,将移动前的坐标和移动后的坐标用canvas的画图api绘制出来 2.wx.createCanvasContext 这个api用于创建并获取指

  • 本文向大家介绍使用python实现微信小程序自动签到功能,包括了使用python实现微信小程序自动签到功能的使用技巧和注意事项,需要的朋友参考一下 功能描述目标 完成多账号微信小程序每天自动签到 输出 签到成功则向微信群发送签到成功的信息 否则提示用户签到失败,需手动签到 包管理 requests itchat time threading 程序的结构设计步骤1 获取要发送的json数据:地址 步

  • 本文向大家介绍微信小程序实现拖拽功能,包括了微信小程序实现拖拽功能的使用技巧和注意事项,需要的朋友参考一下 总结 以上所述是小编给大家介绍的微信小程序实现拖拽功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊教程网站的支持! 如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

  • 本文向大家介绍微信小程序实现留言功能,包括了微信小程序实现留言功能的使用技巧和注意事项,需要的朋友参考一下 需求:留言可以点赞,点过赞之后图标变化,没人只能点赞一次,留言可以在留言 index.wxml 主要的wxss代码(用于点赞的展示,实现小手、空心小手) js 从后台传过来的数据 留言里面的留言 js 点击我要留言 留言点赞 点赞返回的为点赞人的id 其中所得View初始化全部为false

  • 本文向大家介绍微信小程序如何实现在线客服功能,包括了微信小程序如何实现在线客服功能的使用技巧和注意事项,需要的朋友参考一下 其实只需要解决2个问题 第一步,在微信小程序中添加联系在线客服按钮 第二步,接入在线客服功能,设置【自动/人工/转人工】回复等 一、添加小程序客服按钮 ① 在小程序中添加客服按钮功能,点此参考官方文档(开发者通过一行代码,实现客服功能。) ② 常见的客服按钮形式有2种: 1.

  • 本文向大家介绍微信小程序实现留言板功能,包括了微信小程序实现留言板功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了微信小程序实现留言板功能,可以手写,可以删除,可以快速留言,供大家参考,具体内容如下 xml: CSS: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。