当前位置:   article > 正文

腾讯云<trtc-room>小程序组件踩坑记

trtc-room

前言

<trtc-room> 是基于 <live-pusher> 和 <live-player> 实现的用于 TRTC 互通的自定义组件,集成该组件后的小程序可拥有实时音视频和直播互动等功能。

最近盘古项目有需要小程序完成音视频咨询通话的需求,故先简单尝新了一下。

然而这个组件刚面世不久,文档的内容比较欠缺、不太完善,就连疑难解答也是少得可怜,甚至基本上看不到有比较完整的官方解答...

下面将简单介绍本人在此次开发过程中所踩过的坑,版本基于TRTC SDK 7.3。

正文

第一记

roomID必须为Number

请确保在调用进房逻辑的时候,roomID一定要为Number类型,否则无法成功进房。

需要注意的是,如果是通过query带参(即路由跳转)的话,请一定要把从query解构出来的ID数值化,以确保roomID的数据类型是正确的。

简单做一下处理即可:

this.trtcComponent.enterRoom({ roomID: Number(params.roomID) })

 

第二记

userID 不能包含中文字符

先来说说如果使用了含有中文字符的ID作为userID会发生什么。

如果userID中含有中文字符,虽然进房是成功的,但是状态却一直处于等待中。打开调试面板,查看控制台输出会发现,推流和拉流都没有被触发。

将userID更换为非中文字符后,一切便都正常了。后面经过多次测试发现,该问题仅现于iOS端。

为什么userID不能包含中文字符?

我认为原因可能是:

iOS端在传递含有中文的userID给SDK的时候,做了某种微妙的处理(比如编码), 从而使得当前的userID与腾讯云服务器校验成功后返回的userID不一致,故SDK无法将两端建立连接,也就没有推拉流可言了。

p.s. 这个问题是由盘古项目遗留的不规范“旧账”所导致的,其实大多数情况下都可以避免,因为一个标准的ID一般都是符合标准的Sequence Type,而不会参杂non-ascii字符,以中文为例的编码字符作为ID显然不太符合规范。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/538977
推荐阅读
相关标签
  

闽ICP备14008679号