赞
踩
< trtc-room >是目前腾讯推出的多端实时音视频的处理方案,官方地址介绍。这里记录一下个人使用这个组件的一些经验。
用上TRTC后,各端互通,甚至可以用小程序,在QQ和微信互通,在网页端,pc端都有很好的支持(Electron也有,前端福音)。加上TIM的即时通信能力,直接可以搭建一个企业级的直播应用,如果加上腾讯白板,直接变成会议小帮手,教学大杀器,业务场景完全可以在实时音视频业务之上自由组合。
可以在github上下载最新的代码,也可以直接在官网上下载代码包,这里贴上两个地址
github
腾讯云官网
代码clone下来或者是解压完成后,会看到trtc-room的一个组件的代码包,如果只是想快速接入一下的话,可以直接跑通官网的demo,这里注意要开放live-pusher和live-player的权限,小程序官方对这两个组件是需要单独授权的。
以上是腾讯官网小程序的图片,demo有三个场景,语音房,双人通话,多人会议,这里会议场景下,可以设置的地方还是比较多的,live-pusher和live-player里面还有很多其他的属性可以设置。
这里提一下,组件内的页面跳转统一使用navigateTo,如果使用redirectTo进行页面跳转的,安卓的返回键,可能造成小程序挂起的假现象,这里页面的回收时间依赖于微信小程序的内存回收机制,不建议有live-pusher或live-player的页面放在页面栈顶。另外,对于小程序挂起的问题,微信已经在推出官方的解决方案,大家可以随时关注最新的动态。
我们把这个过程想象成一个上网的过程。
this.setData({
trtcConfig:{
sdkAppID: '1401000123', // 开通实时音视频服务创建应用后分配的 SDKAppID
userID: 'test_user_001', // 用户 ID,可以由您的帐号系统指定
userSig: 'xxxxxxxxxxxx', // 身份签名,相当于登录密码的作用
template: 'grid', // 画面排版模式
}
}
// 发布本地音频流和视频流 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) }) // 进入房间 trtcRoomContext.enterRoom({roomID: 1002}).catch((res)=>{ console.error('room joinRoom 进房失败:', res) })
进去了,不行,有些人一言不合就要开团,为了世界和平我要禁了他
unsubscribeRemoteVideo(params)
unsubscribeRemoteAudio(params)
女朋友打电话来了,先把自己的麦关一下
unpublishLocalVideo()
unpublishLocalAudio()
不行,搞不定女朋友了,为了生命安全,我决定
exitRoom()
讲讲自己的体验,组件中云服务是以Faas的形式提供的,比较符合现在serverless的发展潮流,而且electron端也是有非常好的支持,跨平台能力没的说。小程序里面不可否认确实有些坑,但是腾讯的客服还是可以的,晚上也有人,话说这也三班倒吗。。微信小程序里面的支持,腾讯云的产品能算的上同行中最行的了,别人行好像也不太行。要不是现在人不喜欢下APP,我也不会跪着写小程序了,算了,微信真香。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。