集成微信小程序SDK
更新时间:2023-11-03
开发环境
请确保开发环境满足以下技术要求:
- 一个经过企业认证的微信小程序账号
调试 RTC 微信小程序 Demo 过程中,需要使用小程序的 live-pusher 和 live-player 功能标签,用于支持音视频上行和下行(播放)能力,目前微信只向特定行业的认证企业账号开放这两个标签的使用。
- 下载并安装最新版本的微信开发者工具
- 至少一台安装有微信 App 的移动设备
- 微信 App iOS 最低版本要求:6.5.21
- 微信 App Android 最低版本要求:6.5.19
- 小程序基础库最低版本要求:1.7.0
开通小程序组件权限
进入微信公众平台 -> 【开发】 -> 【开发管理】 -> 【接口设置】 -> 【接口权限】,打开 实时播放音视频流 和 实时录制音视频流 的开关。
配置服务器域名
进入微信公众平台 -> 【开发】 -> 【开发管理】 -> 【开发设置】 -> 【服务器域名】,将如下域名配到服务器域名里
request 合法域名:以 https 开头的域名:
https://rtc-log.cdn.bcebos.com
socket 合法域名 :以 wss 开头的域名:
wss://rtc.exp.bcelive.com
SDK下载
请前往RTC文档中心“下载专区>SDK&Demo下载”进行下载。
SDK目录说明
- libs目录 ------ 放置RTC SDK库程序的目录
- pages目录 ------ 放置小程序的demo代码目录
- utils目录 ------ 放置工具代码目录
SDK集成
- libs目录中的js文件复制到项目中
- 使用 require 将小程序 SDK 集成到你的项目中
const brtc = require('../../libs/baidu.rtc.mp.sdk.js');
var BRTCClient = brtc.BRTC;
完成以上步骤后,即可开始调用小程序 RTC的API。
API调用
- 小程序SDK和Web SDK 类似, 仅需使用BRTC_Start()进行登录房间,接收事件回调
API codes使用样例
// 获取应用实例
const brtc = require('../../libs/baidu.rtc.mp.sdk.js');
var BRTCClient = brtc.BRTC;
// 登录房间, 并接收事件回调
BRTCClient.BRTC_Start({
server: 'wss://rtc.exp.bcelive.com/janus',
appid: AppId,
token: Token,
roomname: RoomName,
userid: UserID,
displayname: display_name,
aspublisher: true,
autosubscribe: true,
usingvideo: true,
usingaudio: true,
remotevideoon: function(idx) {
console.log('remotevideoon, index:' + idx);
},
remotevideooff: function(idx) {
console.log('remotevideooff, index:' + idx);
},
remotevideocoming: function(id, display, attribute, pullurl) {
// pullurl 是远端视频的rtmp 地址,设置给live-player进行播放
console.log('remotevideocoming, feedid:' + id + ' display:' + display
+ ' a:' + attribute + ' Pull URL is:' + pullurl);
// rtmp://endpoint/%a/%rn/%f?sdkJoined=true&userId=%u&token=%t
that.setData({
PlayUrl: pullurl
});
that.remotevideo.stop();
that.remotevideo.play();
},
remotevideoleaving: function(id) {
console.log('remotevideoleaving, feedid:' + id);
},
userevent_joinedroom: function(id, display, attribute) {
console.log('userevent_joinedroom id: ' + id + ', display: ' + display + ', attribute:' + attribute);
},
userevent_leavingroom: function(id, display) {
console.log('userevent_leavingroom id: ' + id + ', display: ' + display);
},
success: function(pushurl) {
// pushurl 是本端视频的rtmp 推流地址,设置给live-pusher进行推流
console.log('success, Push URL is:' + pushurl);
// rtmp://endpoint/%a/%rn/%u?sdkJoined=true&token=%t
that.setData({
PushUrl: pushurl
});
that.localvideo.start();
},
localvideopublishing: function() {
},
localvideopublished_ok: function() {
},
remotevideo_closed: function(feedid) {
console.log('remotevideo_closed(feedid: ' + feedid + ') by server, please do SubScribing again');
},
error: function(error) {
wx.showModal({
title: '提示',
content: '登录失败,请检查AppID,Token等参数,谢谢!',
success: function (res) {
if (res.confirm) {
}
}
});
},
destroyed: function(error) {
},
onlocalstream: function(stream,name) {
//local stream for display sonic wave
console.log('onlocalstream name: ' + name);
},
onlocalstream_end: function(name) {
//end event of local stream
console.log('onlocalstream_end name: ' + name);
},
onmessage: function(msg) {
// event onmessage.
console.log('onmessage id: ' + msg.id + ' data: '+ msg.data);
},
onattribute: function(a) {
// event onattribute
console.log('onattribute id: ' + a.id + ' attribute: '+ a.attribute);
},
reportmonitordata: false,
});
// 发送自定义消息等API
BRTCClient.BRTC_SendMessageToUser('hello word');
// 登出房间
BRTCClient.BRTC_Stop();
Demo Codes下载
请前往RTC下载中心进行下载。
打包应用程序-依赖的文件列表
- libs/baidu.rtc.mp.sdk.js