前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >实时音视频开发学习10 - 小程序端一

实时音视频开发学习10 - 小程序端一

原创
作者头像
金林学音视频
发布2020-08-27 17:45:48
1.3K0
发布2020-08-27 17:45:48
举报
文章被收录于专栏:实时音视频TRTC从小白到熟练

跑通小程序

功能

小程序端双人通话、多人会议和语音聊天室三个功能。双人通话中实现1V1视频通话,在结合Web IM SDK可实现在线问诊或客服;语音聊天室能支持多人互动语音聊天,混音、混响等声音特效,适用于狼人杀、在线语音直播等社交场景;多人会议支持多路音视频通话、大小画面和屏幕分享等功能,适用于远程培训、在线教育等。

要求

注册腾讯云账号并完成实名认证。微信 App iOS 最低版本要求:7.0.9微信 App Android 最低版本要求:7.0.8小程序基础库最低版本要求:2.10.0。

操作步骤

登录实时音视频控制台,选择“开发辅助”下的“快速跑通Demo,输入项目名称,单击立即开始。然后开始下载对应的SDK和源码

打开微信开发者工具,导入解压缩后的工程文件,并输入自己的AppID。AppID在小程序导航栏“开发”中,选择开设置便能找到自己小程序ID。如果没有开发者ID,就需要注册一个。

小程序注册方式:打开微信公众平台,点击开始注册,页面下滑,找到“小程序”并单击。填写自己的邮箱和密码,这时你的QQ邮箱便会收到一封邮件,打开邮件,单击所给的链接或复制到浏览器打开。打开后完成主题类型的选择,个体就选择“个人”选项,然后完成相应的主体信息登记,然后提交即可。最后单击“前往小程序”便能在开发选项的开发设置中找到自己的AppID。具体内容参考这个网址:https://blog.csdn.net/u014650759/article/details/90694300

配置工程文件

在小程序端打开项目后找到./debug/GenerateTestUserSig.js文件,修改其中的SDKAPPID和SECRETKEY的值,该值获取方式同web端一样。然后便可以关闭指引进入控制台管理应用,在微信客户端中可以进行真机调试。

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

目前小程序推拉流标签不支持个人小程序,只支持企业类小程序,并且推拉流标签权限只给有限类目开放。

类目主要针对社交类的直播、教育类的在线视频课程、医疗类的问诊直播、金融银行信托等的产品推广直播、汽车销售服务的推广直播、IT科技下的多方通信和智能家居场景下控制的摄像头等。

针对符合类目要求的小程序,可以在微信公众平台—开发—接口设置中自助开通组件权限。但如果时个人APP就会像我这样:

编译运行和错误

导入项目,修改配置,然后编译运行,单击预览,生成二维码,微信扫码即可进入小程序。编译时,点击语音聊天室,输入对应的房间号和用户ID,然后点击进入房间发现进入失败。

这个只需要找到pages目录下的voice-room的room文件下的room.json文件,修改trtc-room的路径

在微信开发工具中运行项目,每当进入房间时会报一个”then”的错误,它的含义是指通过wx.getSetting获取不到相关的信息,事实上电脑也确实获取不到,所以才报这个错误。在报错的同时也提醒你要使用相关平台版本的系统,如安卓需要7.0.8。

解决方法便是在真机上进行验证。

但是官方demo在真机调试的时候会报一个关于语音聊天室的路径错误

出现这个问题的原因有三种,1.页面路径写错;2.文件名输入有误;3.页面路径在app.json未定义。而这里便是voice-room下面的两个文件作为路由跳转却没有在json文件中定义,修改即可。

现在就能放心的使用和调试了。

集成小程序

下载组件源码

可以从github上下载SDK源码包,并使用git clone 的方式,先打开一个文件夹,然后进行克隆到对应的文件夹中。另外在一分钟跑通小程序时,下载的安全包中也有对应的组件包。

https://cloud.tencent.com/document/product/647/32183在这个网页中也可以选择腾讯云镜像压缩包,点击直接进行下载。

小程序中组件trtc-room主要包括敞亮存储空间common、组件模板template、功能函数utils等。

集成组件

在需要引入组件页面的json文件中,找到usingComponents,并使用json格式进行引入,同时保证路径的正确。

然后再对应的html页面中放置trtc-room组件,该组件需要一个id便于通过selectComponent进行获取,同时还需要一个config配置对象,该对象决定了你需要的配置的所有内容。

Config必须要填写的值为sdkAppID用于计费和相关业务,userID用户名,userSig相当于登陆密码和template指定使用的模板1V1、grid和custom。

小程序跑通通话

准备工作

创建了腾讯云实时音视频应用,购买了相应的套餐,并获取到 SDKAppID 和密钥信息。开通小程序类目与推拉流标签权限。小程序服务器域名配置。在您的小程序项目中集成 <trtc-room> 组件。

组装参数

Scene拥有两中使用场合。rtc:实时通话,采用优质线路,同一房间中的人数不应超过300人。live:直播模式,采用混合线路,支持单一房间十万人在线(同时上麦的人数应控制在20人以内

SDKAppID进入腾讯云实时音视频控制台创建一个新的应用,获得 SDKAppID。

UserID为字符串类型,您可以自定义指定。例如,直接与您现有的账号体系保持一致,或直接使用小程序的 openid。需要注意的是同一个音视频房间里不能存在两个相同的userID。

UserSig基于 SDKAppID 和 UserID 可以计算出 UserSig,计算方法请参见 。计算方式可参考web端的。

template组件内置的画面排版模式,支持如下三种模式:

"1v1":大小画面上下叠加。

"grid":网格模版,画面间相互重叠,最多显示9路画面。

"custom":自定义,需要您通过 setViewRect 和 setViewZIndex 等接口自行处理或者修改组件的 custom 模版。

roomID房间号是数字类型,您可以自定义指定。房间号可以提供给对方进行加入房间操作,同时需要注意的是,同一个应用里的两个音视频房间不能分配同一个roomID。

集成组件

在上一节中已讲。

进入创建房间

首先需要给trtc-room配置config对象

通过ID属性获取trtc-room组件,并将该组件对象进行保存。然后获取全局的监听事件对象

进房成功后发布本地音视频流

监听远端用户视频流变更事件,并使用subscribeRemoteVideo订阅远端用户的视频流。根据需要也能使用unsubscribeRemoteVideo进行取消订阅。

监听远端用户音频流变更事件,并使用subscribeRemoteAudio订阅远端用户的音频流。根据需要也能使用unsubscribeRemoteAudio进行取消订阅。

最后使用trtc-room组件方法enterRoom进入房间

开启或关闭本地声音采集

发布本地音频,即开启本地麦克风采集并启动音频推流。如果是纯音频沟通场景,则不需要调用publishLocalVideo()。取消发布本地音频,关闭本地音频推流使用unpublishLocalVideo。

这里有一个数组是因为房间内有多个远端流用户,和web端中使用了一个remoteStream_数组类似的形式。

开启或关闭本地视频采集

publishLocalVideo发布本地视频,即开启本地摄像头采集并启动视频推流; 取消发布本地视频,关闭本地视频推流使用unpublishLocalVideo。

切换摄像头

摄像头的切换可以调用组件实例方法switchCamera即可切换摄像头。您可以像手机打视频电话一样点击切换摄像头,也可以直接给一个按钮进行绑定事件用来调试。

退出房间

退出房间使用组件实例化方法exitRoom即可。需要注意的是,在你退出房间的时候,如果定义了某些变量则需要将其进行重置,避免下次进入房间造成不必要的错误。

注:更多请关注腾讯云一分钟跑通小程序https://cloud.tencent.com/document/product/647/32399

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 跑通小程序
    • 功能
      • 要求
        • 操作步骤
          • 配置工程文件
            • 开通小程序类目与推拉流标签权限
              • 编译运行和错误
              • 集成小程序
                • 下载组件源码
                  • 集成组件
                  • 小程序跑通通话
                    • 准备工作
                      • 组装参数
                        • 集成组件
                          • 进入创建房间
                            • 开启或关闭本地声音采集
                              • 切换摄像头
                            • 退出房间
                            相关产品与服务
                            云直播
                            云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档