前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从零开始创建一个超简单的TRTC音视频通讯程序(小程序篇)

从零开始创建一个超简单的TRTC音视频通讯程序(小程序篇)

原创
作者头像
F颜
修改2020-06-18 18:01:22
2K0
修改2020-06-18 18:01:22
举报
文章被收录于专栏:跟颜哥学习云开发

1、前置条件

1.1、开通小程序类目与推拉流标签权限

出于政策和合规的考虑,微信暂未放开所有小程序对实时音视频功能(即 <live-pusher> 和 <live-player> 标签)的支持:

  • 小程序推拉流标签不支持个人小程序,只支持企业类小程序。
  • 小程序推拉流标签使用权限暂时只开放给有限 类目
  • 符合类目要求的小程序,需要在【微信公众平台】>【开发】>【接口设置】中自助开通该组件权限,如下图所示:

1.2、通过控制台创建应用

  • 进入腾讯云实时音视频控制台创建一个新的应用,获得sdkAppId并记录
请记录右侧sdkAppId
请记录右侧sdkAppId
  • 点击快速上手,查看秘钥,复制秘钥
点击复制密钥,并记录
点击复制密钥,并记录

2、下载SDK并配置

2.1、下载SDK

2.2、创建小程序

创建你的第一个音视频小程序
创建你的第一个音视频小程序

2.3、安装和配置trtc-room插件

导入components目录下的trtc-room插件(没有则导入整个components)和debug目录

插件目录结构
插件目录结构

此时,trtc-room组件已经安装好了。

3、开始写代码

此时,准备工作已经做好,可以开启我们所熟悉的写代码环节了。

第一步,在json配置文件中引入组件(index.json为例)

代码语言:json
复制
"usingComponents": {
    "trtc-room": "/components/trtc-room/trtc-room"
}

第二步,准备好音视频容器(index.wxml为例)

代码语言:html
复制
<trtc-room id="trtcroom" config="{{trtcConfig}}"></trtc-room>

第三步,生成签名(UserSig)

  • 客户端生成(index.js为例) 步骤2中debug目录下有生成签名的工具类
代码语言:javascript
复制
修改GenerateTestUserSig.js中的配置

const SDKAPPID = 11111111111//修改为步骤一记录的sdkAppId

const SECRETKEY = '7121aa26ae13903038061gh393fd7e42235589c97ce99c115411cb6253237506'//第一步记录的密钥
  • 引入签名生成工具类并生成UserSig(index.js为例)
代码语言:javascript
复制
import{ genTestUserSig }from'../../../debug/GenerateTestUserSig.js'//咱们在需要在js文件中引用它

//这里接第四步代码

第四步,建立连接并使用(index.js为例)

如下代码所示,暂时在代码里写死用户ID和房间号,以作测试。

代码语言:javascript
复制
Page({
  data: {
    trtcConfig:{
      sdkAppID: '',  // 开通实时音视频服务创建应用后分配的 SDKAppID
      userID: '', // 用户 ID,可以由您的帐号系统指定
      userSig: '', // 身份签名,相当于登录密码的作用
      template: '', // 画面排版模式
    }
  },
  //事件处理函数
  bindViewTap: function() {
    
  },
  onLoad: function () {
    let userID = 'test';//测试用户test
    const Signature = genTestUserSig(userID);
    this.setData({
      trtcConfig: {
        sdkAppID: Signature.sdkAppID,  // 开通实时音视频服务创建应用后分配的 SDKAppID
        userID: userID, // 用户 ID,可以由您的帐号系统指定
        userSig: Signature.userSig, // 身份签名,相当于登录密码的作用
        template: 'grid',        // 画面排版模式
      }
    }, () => {
      let trtcRoomContext = this.selectComponent('#trtcroom')
      let EVENT = trtcRoomContext.EVENT

      if (trtcRoomContext) {
        trtcRoomContext.on(EVENT.LOCAL_JOIN, (event) => {
          // 进房成功后发布本地音频流和视频流 
          trtcRoomContext.publishLocalVideo()
          trtcRoomContext.publishLocalAudio()
        })
        // 监听远端用户的视频流的变更事件
        trtcRoomContext.on(EVENT.REMOTE_VIDEO_ADD, (event) => {
          // 订阅(即播放)远端用户的视频流
          let userID = event.data.userID
          let streamType = event.data.streamType// 'main' or 'aux'            
          trtcRoomContext.subscribeRemoteVideo({ userID: userID, streamType: streamType })
        })

        // 监听远端用户的音频流的变更事件
        trtcRoomContext.on(EVENT.REMOTE_AUDIO_ADD, (event) => {
          // 订阅(即播放)远端用户的音频流
          let userID = event.data.userID
          trtcRoomContext.subscribeRemoteAudio({ userID: userID })
        })

        // 进入房间,这里是写死的房间号1002
        trtcRoomContext.enterRoom({ roomID: 1002 }).catch((res) => {
          console.error('room joinRoom 进房失败:', res)
        })
      }
    })
  }
})
开发环境请设置不校验合法域名
开发环境请设置不校验合法域名

4、开始真机调试

若用企业微信创建的小程序账号,请授予自己微信开发者权限

一定要真机调试,开发者工具是不支持实时音视频的

小程序开发者工具运行会报错
小程序开发者工具运行会报错

成功运行

成功跑通(过一小会儿会显示本地视频预览)
成功跑通(过一小会儿会显示本地视频预览)

小总结

1、官方文档都挺齐全的,因为是自己也是按照官网步骤然后再参考demo几乎是一次性就跑通了,放个链接快速集成(小程序)

2、也碰到一点点小问题,请大家一定看依稀啊前置条件的第一点(开通小程序类目与推拉流标签权限),不然的话是不会有音视频推拉流的,连本地视频预览都不会有。

3、下一篇将实现web端的TRTC音视频通讯,然后和这个简单的小程序进行连通。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、前置条件
    • 1.1、开通小程序类目与推拉流标签权限
      • 1.2、通过控制台创建应用
      • 2、下载SDK并配置
        • 2.1、下载SDK
          • 2.2、创建小程序
            • 2.3、安装和配置trtc-room插件
            • 3、开始写代码
              • 第一步,在json配置文件中引入组件(index.json为例)
                • 第二步,准备好音视频容器(index.wxml为例)
                  • 第三步,生成签名(UserSig)
                    • 第四步,建立连接并使用(index.js为例)
                    • 4、开始真机调试
                      • 一定要真机调试,开发者工具是不支持实时音视频的
                        • 成功运行
                          • 1、官方文档都挺齐全的,因为是自己也是按照官网步骤然后再参考demo几乎是一次性就跑通了,放个链接快速集成(小程序)
                          • 2、也碰到一点点小问题,请大家一定看依稀啊前置条件的第一点(开通小程序类目与推拉流标签权限),不然的话是不会有音视频推拉流的,连本地视频预览都不会有。
                          • 3、下一篇将实现web端的TRTC音视频通讯,然后和这个简单的小程序进行连通。
                      • 小总结
                      相关产品与服务
                      实时音视频
                      实时音视频(Tencent RTC)基于腾讯21年来在网络与音视频技术上的深度积累,以多人音视频通话和低延时互动直播两大场景化方案,通过腾讯云服务向开发者开放,致力于帮助开发者快速搭建低成本、低延时、高品质的音视频互动解决方案。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档