微信小程序视频播放(如何快速实现小程序视频通话)

2020年3月3日,阿拉丁发布《2020年2月小程序互联网发展研究报告》,报告显示,小程序日活跃用户数量已破4.5亿,而小程序数量达39万,在过去的1月、2月新增了60万个。作为对比,过去的11年里,苹果应用商城积累的APP数量才是260万。可见小程序的势头正猛。


在日常生活中,笔者也需要用到小程序,比如乘车码、粤省事、萌芽习惯等。相信很多人也和笔者一样会在衣食住行方面用到小程序。小程序中还能实现语音通话、视频通话,给众人带来了便利。不过,在日常使用中,有多少人知道小程序是如何快速实现视频通话功能的?下面以zego即构科技的小程序视频通话功能为例,给大家详解一番其中的实现过程。


集成


1准备环境


在开始集成 ZEGO Express SDK 前,请确保开发环境满足以下要求:


l 安装 微信开发者工具。


l 使用微信小程序基础库 1.7.0 或以上版本,否则不支持音视频播放、录制组件。


l 通过微信小程序实时音视频播放相关类目审核,开通 live-player、live-pusher 组件权限。


2 集成 SDK


从官网下载 SDK,手动集成


l 请参考下载SDK包,下载最新版本的 SDK。


l 解压SDK压缩包,将“ZegoExpressWebRTC-x.x.x.js”文件拷贝到项目中。


l 在使用到插件的js文件的最前面导入SDK。


实现流程


1 前提条件


在实现基本的实时音视频功能之前,请确保:


l 已在项目中集成 ZEGO Express SDK,详情请参考 快速开始 - 集成。


l 已在 ZEGO 控制台 创建项目,申请有效的 AppID 和 AppSign,详情请参考 控制台 - 项目管理。


l 已在 ZEGO 控制台 获取有效的 Server 地址。在 ZEGO 控制台中的对应项目下单击 “配置 > 查看(环境配置) > 小程序”,即可获得 Server 地址(包含 HTTPS、WSS 协议)。


l 在 微信公众平台 进行 服务器域名配置。在“小程序后台 > 开发 > 开发设置 > 服务器域名”,按照协议分类,将 Server 地址填到指定的“request合法域名”或“socket合法域名”中。


2使用步骤


本节介绍如何使用 ZEGO Express SDK 实现基本的实时音视频功能,API 调用时序如下图:



2.1 创建引擎


1. (可选)创建界面


2. 创建引擎


创建 ZegoExpressEngine 引擎实例,将申请到的 AppID 传入参数 “appID”,将获取到的 Server 地址传入参数 “server”。


3.(可选)监听事件回调


2.2 登录房间


1. 获取登录 Token


登录房间需要用于验证身份的 Token,获取方式请参考 登录房间鉴权。


2. 登录房间


调用 SDK 的 loginRoom 接口,传入房间 ID 参数 “roomID”、“token” 和用户参数 “user”,登录房间。


3. 监听登录房间后的事件回调


根据实际应用需要,在登录房间前监听想要关注的事件通知,比如房间状态更新、用户状态更新、流状态更新等。(详情请登录官方网站)


2.3 推流


1. 开始推流


触发推流后,调用 SDK 的 startPublishingStream 接口,传入流 ID 参数 “streamID”,获取 “streamID” 对应的推流地址。


调用微信小程序的 wx.createLivePusherContext 创建 live-pusher,将获取到的推流地址设置为 live-pusher 的 “url” 属性,然后调用 live-pusher 的 start 录制视频。


2. 推流事件处理


l 推流状态事件


微信小程序会在 live-pusher 的 bindstatechange 绑定的方法中通知出推流状态事件,开发者需要:


a. 在 bindstatechange 绑定的回调函数中,调用 SDK 的 updatePlayerState 接口将推流状态事件透传给 SDK。


b. 在 SDK 的 publisherStateUpdate 回调中处理推流的开始、失败状态。


推流网络事件


微信小程序会在 live-pusher 的 bindnetstatus 绑定的方法中通知出推流网络事件,开发者需要在对应的小程序回调中,调用 SDK 的 updatePlayerNetStatus 接口将推流网络事件透传给 SDK。


2.4 拉流


1. 开始拉流


触发拉流后,调用 SDK 的 startPlayingStream 接口,根据传入的流 ID 参数 “streamID”,获取 streamID 对应的拉流地址。远端用户推送的 “streamID” 可以从 roomStreamUpdate 回调中获得。


2. 拉流事件处理


拉流状态事件


微信小程序会在 live-player 的 bindstatechange 绑定的方法中通知出拉流状态事件,开发者需要:


a. 在 bindstatechange 绑定的回调函数中,调用 SDK 的 updatePlayerState 接口将拉流状态事件透传给 SDK。


b. 在 SDK 提供的 playerStateUpdate 回调中处理拉流的开始、失败状态。


l 拉流网络事件


微信小程序会在 live-player 的 bindnetstatus 绑定的方法中通知出拉流网络事件,开发者需要在对应的小程序回调中,调用 SDK 的 updatePlayerNetStatus 接口将推流网络事件透传给 SDK。


2.5 停止推拉流


1. 停止推流


调用 SDK 的 stopPublishingStream 接口清空推流状态。


调用微信小程序 live-pusher 的 stop 停止推流。


3. 停止拉流


微信怎么做抖音自动播放

调用 SDK 的 stopPlayingStream 接口清空拉流状态。


调用微信小程序 live-player 的 stop 停止拉流。


2.6 退出房间


调用 SDK 的 logoutRoom 接口退出房间。


上面便是在小程序上实现视频通话的后台步骤了,主要划分为集成、实现流程(准备环境、使用步骤、创建引擎、登录房间、进行推拉流、停止推拉流、退出房间)几大步骤。想进一步详细查看他们的开源示例代码的话,可登录他们的官方网站进行了解。

您可以还会对下面的文章感兴趣

使用微信扫描二维码后

点击右上角发送给好友