首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >实时音视频 TRTC 常见问题汇总---集成接入篇

实时音视频 TRTC 常见问题汇总---集成接入篇

原创
作者头像
腾讯视频云-Zachary
修改2021-10-10 15:46:13
13.3K0
修改2021-10-10 15:46:13
举报

腾讯实时音视频(Tencent Real-Time Communication,TRTC)是腾讯云基于 QQ 十多年来在音视频通话技术上积累,并结合腾讯浏览服务 TBS WebRTC 能力与腾讯实时音视频 SDK ,为客户提供多平台互通高品质可定制化的 实时音视频互通服务 解决方案。 为了方便开发者技术选型、开发集成,以下是针对不同问题场景整理的 TRTC 常见问题汇总,后续会持续更新,欢迎反馈。

集成接入篇

一、通用

1. 实时音视频 TXLiteAVSDK 默认输出的日志在哪里?怎么查看?

TRTC 的日志默认压缩加密,后缀为 .xlog。日志是否加密是可以通过 setLogCompressEnabled 来控制,生成的文件名里面含 C(compressed) 的就是加密压缩的,含 R(raw) 的就是明文的。

  • iOS&Mac:sandbox的Documents/log
  • Android:
    • 6.7及之前的版本:/sdcard/log/tencent/liteav
    • 6.8之后的版本:/sdcard/Android/data/包名/files/log/tencent/liteav/
  • Windows:%appdata%/tencent/liteav/log
  • Web:打开浏览器控制台,或使用 vConsole 记录 SDK 打印信息
  • 小程序:启用 <live-pusher> 和 <live-player> 标签的 debug 属性,使用 vConsole 记录打印信息

查看 .xlog 文件需要下载解密工具,在python 2.7环境中放到 xlog 文件同目录下直接使用 python decode_mars_log_file.py 运行即可。 日志解密工具下载地址:dldir1.qq.com/hudongzhibo/log_tool/decode_mars_log_file.py,日志相关详情参考 日志输出配置。 注:查看 .xlog 文件下载解密工具,在python 2.7环境中放到xlog文件同目录下直接使用 python decode_mars_log_file.py 运行即可。 日志相关详情参考:https://cloud.tencent.com/developer/article/1502366

2. TRTC集成后,文件增量有多大?

3. 如何查询 SDK 最新版本号?

二、Android SDK

1. TRTC Android端能不能支持64位的arm64-v8a架构?

  • TRTC 6.3 版本开始已提供 arm64-v8a 架构 ABI 支持。

2. 在 Android 端怎么实现动态加载 so 库?

三、iOS SDK

1. 在 iOS 端是否支持 Swift 集成?

  • 支持,直接按照支持集成三方库的流程集成 SDK 即可,还可以参考 跑通Demo(iOS&Mac)

2. iOS 端 SDK 与其它三方库冲突报错问题该如何解决?

3. iOS 端 SDK 与其它三方库冲突报错问题该如何解决?

4. TRTC SDK 是否支持 iOS 后台运行?

  • 支持,您只需选中当前工程项目,在 Capabilities 下的设置 Background ModesON,并勾选 Audio,AirPlay and Picture in Picture即可实现后台运行,详情如下图所示:

四、房间相关接口

1. 调用加入房间接口 enterRoom() 报错,onEnterRoom 回调返回错误码 -100018是什么原因?

  • 报错-100018错误原因是进房 TRTCParams 里面相关参数不正确导致的SDK校验失败,有下面几种情况: (1)参数 sdkAppId 传入不正确; (2)参数 userId 对应的验证签名 userSig 传入不正确。

排查办法,登录腾讯云控制台在实时音视频-账号信息查看sdkappid,在开发辅助可以使用签名(UserSig)校验工具校验。

2. enterRoom() 应用场景 scene 参数该怎么选择?

进房应用场景参数支持下面4种场景:

  • TRTCAppSceneVideoCall :视频通话场景,适合1对1视频通话、300人视频会议、在线问诊、视频聊天、远程面试等。
  • TRTCAppSceneLIVE :视频互动直播,适合视频低延时直播、十万人互动课堂、视频直播 PK、视频相亲房、互动课堂、远程培训、超大型会议等。
  • TRTCAppSceneAudioCall :语音通话场景,适合1对1语音通话、300人语音会议、语音聊天、语音会议、在线狼人杀等。
  • TRTCAppSceneVoiceChatRoom:语音互动直播,适合:语音低延时直播、语音直播连麦、语聊房、K 歌房、FM 电台等。

3. 离开房间接口 exitRoom() 是否必须调用?

  • 不管进房是否成功,enterRoom 都必须与 exitRoom 配对使用,在调用 exitRoom 前再次调用 enterRoom 函数会导致不可预期的错误问题。

4. 调用 exitRoom() 之后快速操作设备摄像头或麦克风出现被占用等异常现象?

  • 调用 exitRoom() 接口会执行退出房间的相关逻辑,如释放音视频设备资源和编解码器资源等。 待资源释放完毕,SDK 会通过 TRTCCloudListener 中的 onExitRoom() 回调通知上层。 如果您要再次调用 enterRoom() 或者切换到其他的音视频 SDK,请等待 onExitRoom() 回调到来之后再执行相关操作。

5. switchRole() 接口有什么作用?

  • switchRole 接口用于切换角色,仅适用于进房直播场景( TRTCAppSceneLIVE 和 TRTCAppSceneVoiceChatRoom ),支持 TRTCRoleAnchor(主播)和 TRTCRoleAudience(观众)2种角色,区别是主播角色可以上行本地音视频数据,观众角色只支持下行。

6. connectOtherRoom() 接口怎么使用?

  • connectOtherRoom 的应用场景用于跨房连麦(主播PK), 接口的逻辑是:主播调用 connectOtherRoom() 后,可以通过 onConnectOtherRoom 回调得到跨房PK的结果;调用之后,主播一所在房间里的所有人,都会通过onUserEnter的回调,得到主播二进房的通知;主播二所在房间的所有人,也都会通过onUserEnter的回调,得到主播一进房的通知。

详情参考API接口文档:https://cloud.tencent.com/document/product/647/32228

7. 在小程序端创建了一个房间,移动端能否进入该房间?

  • 可以,实时音视频支持全平台互通。

8. SDK 是否可以监听远端离开房间?

  • 可以使用 onRemoteUserLeaveRoom 来监听用户离开房间事件,且该接口仅在 VideoCall 的所有用户和 LIVE 模式下的主播离开房间时会触发回调,观众离开房间不会有回调。

9. 同一个页面中,是否可以创建 N 个 TRTC 对象,通过 N 个 UserID,分别登录到 N 个房间?

五、视频相关接口

1. stopLocalPreviewd() 和 muteLocalVideo() 区别?

  • stopLocalPreviewd 是停止本地视频采集,当调用该接口之后自己本地和远端画面就是黑屏;muteLocalVideo 是设置是否向后台发送自己的视频画面,当调用该接口之后其他用户观看的画面变成黑屏,自己本地的预览还是能看到画面。

2. TRTC SDK 怎么设置上行视频码率、分辨率、帧率?

  • 可以通过 TRTCCloud 里面的 setVideoEncoderParam() 接口设置 TRTCVideoEncParam 参数中 videoResolution(分辨率)、videoFps(帧率)、videoBitrate(码率)。

3. TRTC SDK 都支持哪些分辨率?

4. SDK 控制画面角度与方向是怎么确定的?

1、发送端本地画面的旋转角度,SDK 里通过 setLocalViewRotation 控制,有 4 个方向;

2、发送端本地编码器处理的方向,SDK 里面通过:

2.1、resMode 来指定画面采集的方向是横屏(宽大于高)或竖屏(高大于宽)

2.2、setGSensorMode 指定相机的角度是否随重力感应旋转

2.3、setVideoEncoderRotation 控制编码时旋转画面的角度

其中,GSensorMode 影响的是相机的方向角度; setVideoEncoderRotation 是人为指定的旋转角度;

3、接收端本地解码器的方向,这个一般不用管;

4、接收端显示画面的角度,SDK 里通过 setRemoteViewRotation 控制,有 4 个方向。

由上可以看出,画面旋转的内容较为复杂,因此我们将其放置于高级功能之中,建议开发者按照Demo示例进行处理,避免因为误操作旋转参数导致画面旋转角度不达预期。

5. TRTC 怎样实现横屏视频通话?

6. TRTC 视频画面出现黑边怎么去掉?

  • 设置 TRTCVideoFillMode_Fill(填充)可以解决,TRTC 视频渲染模式有2种分别是填充和适应,本地渲染画面可以通过 setLocalViewFillMode() 设置,远端渲染画面可以通过 setRemoteViewFillMode 设置:

参数

描述

TRTCVideoFillMode_Fill

图像铺满屏幕,超出显示视窗的视频部分将被截掉,所以画面显示可能不完整。

TRTCVideoFillMode_Fit

图像长边填满屏幕,短边区域会被填充黑色,但画面的内容肯定是完整的。

7. TRTC 自己的本地画面和远端画面左右相反?

  • 本地默认采集的画面是镜像的,可以通过 setLocalViewMirror 接口设置,该接口只改变本地摄像头的预览画面的镜像模式,;或者通过 setVideoEncoderMirror 接口设置置编码器输出的画面镜像模式,该接口不改变本地摄像头的预览画面,但会改变另一端用户看到的(以及服务器录制下来的)画面效果。

接口

描述含义

setLocalViewMirror()

该接口只改变本地摄像头的预览画面。

setVideoEncoderMirror()

该接口不改变本地摄像头的预览画面,但会改变另一端用户看到的(以及服务器录制下来的)画面效果。

8. TRTC 设置视频编码输出的方向没有效果?

  • 调用 setVideoEncoderRotation() 接口的前提,需要设置 setGSensorMode() 为 TRTCGSensorMode_Disable,否则远端用户观看到的画面没有变化。

9. 移动端 SDK 推流怎么设置1080p分辨率?

1080P在 TX_Enum_Type_VideoResolution 定义是114,直接设置分辨率传枚举值即可。

10. TRTC 移动端怎么实现录屏(屏幕分享)?

  • Android 端:Version 7.2 及以上版本支持手机录屏,具体实践方法请参见 实时屏幕分享(Android)
  • iOS 端:Version 7.2 及以上版本支持 App 内录屏;Version 7.6 及以上版本支持手机录屏和 App 内录屏。具体实践方法请参见 实时屏幕分享(iOS)

六、音频相关接口

1. stopLocalAudio() 和 muteLocalAudio() 的区别是什么?

  • stopLocalAudio 是关闭本地音频的采集和上行,而muteLocalAudio 并不会停止发送音视频数据,而是会继续发送码率极低的静音包。

2. TRTC的通话同时用了点播播放器 TXVodPlayer 播放,为什么播放声音很小?

  • 目前 TRTC 的音量类型默认使用通话音量,而点播播放器默认使用媒体音量,在 TRTC 设置了通话音量之后,为了保证通话,点播播放器也会复用音频通道走通话音量。可以通过 setSystemVolumeType 接口设置通话时使用的系统音量类型,设置为媒体音量模式 TRTCSystemVolumeTypeMedia 可以解决。

3. 移动端(Andriod/iOS)支持哪几种系统音量模式?

支持2种系统音量类型,即通话音量类型和媒体音量类型:

  • 通话音量,手机专门为通话场景设计的音量类型,使用手机自带的回声抵消功能,音质相比媒体音量类型较差, 无法通过音量按键将音量调成零,但是支持蓝牙耳机上的麦克风。
  • 媒体音量,手机专门为音乐场景设计的音量类型,音质相比于通话音量类型要好,通过通过音量按键可以将音量调成零。 使用媒体音量类型时,如果要开启回声抵消(AEC)功能,SDK 会开启内置的声学处理算法对声音进行二次处理。 在媒体音量模式下,蓝牙耳机无法使用自带的麦克风采集声音,只能使用手机上的麦克风进行声音采集。

七、自定义采集和渲染

1. TRTC 自定义采集视频数据怎么实现?

2. TRTC 自定义采集音频数据怎么实现?

八、旁路推流和录制

1. TRTC 正常上行有数据,旁路拉流失败看不到画面?

  • 首先确认在控制台中已打开自动旁路,未打开的话无法旁路推流;
  • 打开了控制台旁路推流,音视频上行可以正常旁路;纯音频上行需要设置使用 AudioCall 和 VoiceChatRoom 这两个场景。

2. 旁路录制的各种场景下生成录制文件是怎样的?

  • 未打开控制台旁路推流,未配置云端录制,不会生成录制文件;
  • 控制台打开了,音视频上行可以正常录制;
  • 设置了pure_audio_push_mod:1,音视频上行可以正常录制;纯音频上行不会录制;
  • 设置了pure_audio_push_mod:2,音视频上行和纯音频上行都只会生成MP3录制文件;
  • 先音视频上行,中途切换了纯音频,生成的录制文件前一部分是音视频都有,切换后的部分只有音频;
  • 先纯视频上行,中途切换了音视频,上传的录制文件只会有音视频上行的那一部分;
  • 音视频上行需要生成AAC的音频录制文件,可以在云直播配置录制模板加上AAC格式;
  • 纯音频上行不支持录制成视频文件格式,配置了模板也录制不了;
  • 云直播配置的录制模板是账号级别的。实时音视频配置的模板是应用级别的(sdkappid),同一个 sdkappid 发起的旁路推到直播优先选取实时音视频配置的 sdkappid 级别的模板。如果这个账号下还有其它 sdkappid,并且没有在实时音视频配置模板的话就会选用直播的录制模板;
  • 如果云直播录制模板配置了AAC和其它视频格式,刚开始上行只有音频,那也只会生成AAC格式一个录制文件。

九、其它

1. 实时音视频(TRTC)如何打印日志?

技术支持

亲爱的开发者,如果在使用产品过程中遇到任何问题,欢迎到 云+社区GitHub 提问或者查询历史问题以及解决方案。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 集成接入篇
    • 一、通用
      • 1. 实时音视频 TXLiteAVSDK 默认输出的日志在哪里?怎么查看?
      • 2. TRTC集成后,文件增量有多大?
      • 3. 如何查询 SDK 最新版本号?
    • 二、Android SDK
      • 1. TRTC Android端能不能支持64位的arm64-v8a架构?
      • 2. 在 Android 端怎么实现动态加载 so 库?
    • 三、iOS SDK
      • 1. 在 iOS 端是否支持 Swift 集成?
      • 2. iOS 端 SDK 与其它三方库冲突报错问题该如何解决?
      • 3. iOS 端 SDK 与其它三方库冲突报错问题该如何解决?
      • 4. TRTC SDK 是否支持 iOS 后台运行?
    • 四、房间相关接口
      • 1. 调用加入房间接口 enterRoom() 报错,onEnterRoom 回调返回错误码 -100018是什么原因?
      • 2. enterRoom() 应用场景 scene 参数该怎么选择?
      • 3. 离开房间接口 exitRoom() 是否必须调用?
      • 4. 调用 exitRoom() 之后快速操作设备摄像头或麦克风出现被占用等异常现象?
      • 5. switchRole() 接口有什么作用?
      • 6. connectOtherRoom() 接口怎么使用?
      • 7. 在小程序端创建了一个房间,移动端能否进入该房间?
      • 8. SDK 是否可以监听远端离开房间?
      • 9. 同一个页面中,是否可以创建 N 个 TRTC 对象,通过 N 个 UserID,分别登录到 N 个房间?
    • 五、视频相关接口
      • 1. stopLocalPreviewd() 和 muteLocalVideo() 区别?
      • 2. TRTC SDK 怎么设置上行视频码率、分辨率、帧率?
      • 3. TRTC SDK 都支持哪些分辨率?
      • 4. SDK 控制画面角度与方向是怎么确定的?
      • 5. TRTC 怎样实现横屏视频通话?
      • 6. TRTC 视频画面出现黑边怎么去掉?
      • 7. TRTC 自己的本地画面和远端画面左右相反?
      • 8. TRTC 设置视频编码输出的方向没有效果?
      • 9. 移动端 SDK 推流怎么设置1080p分辨率?
      • 10. TRTC 移动端怎么实现录屏(屏幕分享)?
    • 六、音频相关接口
      • 1. stopLocalAudio() 和 muteLocalAudio() 的区别是什么?
      • 2. TRTC的通话同时用了点播播放器 TXVodPlayer 播放,为什么播放声音很小?
      • 3. 移动端(Andriod/iOS)支持哪几种系统音量模式?
    • 七、自定义采集和渲染
      • 1. TRTC 自定义采集视频数据怎么实现?
      • 2. TRTC 自定义采集音频数据怎么实现?
    • 八、旁路推流和录制
      • 1. TRTC 正常上行有数据,旁路拉流失败看不到画面?
      • 2. 旁路录制的各种场景下生成录制文件是怎样的?
    • 九、其它
      • 1. 实时音视频(TRTC)如何打印日志?
      • 亲爱的开发者,如果在使用产品过程中遇到任何问题,欢迎到 云+社区 和 GitHub 提问或者查询历史问题以及解决方案。
  • 技术支持
相关产品与服务
实时音视频
实时音视频(Tencent RTC)基于腾讯21年来在网络与音视频技术上的深度积累,以多人音视频通话和低延时互动直播两大场景化方案,通过腾讯云服务向开发者开放,致力于帮助开发者快速搭建低成本、低延时、高品质的音视频互动解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档