腾讯云<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显然不太符合规范。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值