小程序端双人通话、多人会议和语音聊天室三个功能。双人通话中实现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 删除。