常见问题
- iOS平台如何缩减安装包体积?
对于iPhone 5s及以上版本的手机支持只打包arm64架构,可以在XCode的Build Setting < Build Active Architecture Only设置为YES,并将Valid Architectures只写arm64,则SparkRTC SDK可压缩一半的体积。
- 设置编码参数时,调用setVideoEncParam接口为什么会提示参数设置错误?
设置分辨率时需对照华为SDK系统推荐的码表才能设置成功。
- 加入房间失败时,如何解决?
首先通过返回的客户端错误码进行分析,主要有以下几个原因:
- 什么原因会导致跨房不成功?
可能性1:同一时间不同房间最多只有一个Joiner角色才能跨房成功。
可能性2:同一时间最多只能跨4个房间,跨房对应的房间ID必须互不相同。
可能性3:当前的远端音频模式(setRemoteAudioMode)设置为HWRtcRemoteAudioTopOfAll模式时不支持跨房。
- 怎么样使用远端音频模式为HWRtcRemoteAudioSubscribe时才能默认听不到远端用户的声音?
HWRtcRemoteAudioSubscribe为自主订阅,需要用户手动调用订阅。
方法1:在加入房间(joinRoom)时调用带有HRTCMediaOptions类的方法,创建该类实例后autoSubscribeAudio属性设置为NO,进入房间后听不到远端用户声音,需要手动调用muteRemoteAudio根据uid单个用户订阅才能听到声音。
方法2:在进入房间后调用setDefaultMuteAllRemoteAudioStreams接口设置是否自订阅远端用户音频流;当参数设置为false时,muteAllRemoteAudio不论参数是true还是false,新加入用户都不会订阅音频流。
注意:在调用setDefaultMuteAllRemoteAudioStreams接口之前,进入的远端用户不受该接口控制,重新进入后才受控制。
- 为什么onVideoStats、onAudioStatus、onSubStreamStats回调触发时程序崩溃?
回调函数的入参localStats和remoteStats指针有可能为空,需要先判断不为空再使用,否则可能引发空指针错误。
- 为什么本端听筒能听到自己的声音?
调用muteRemoteAudio时参数设置为自己uid就会发生此类情况。
- setExternalAudioCapture(音频自采集)、setExternalVideoCapture(视频自采集)、setExternalMediaFrameOutput(视频自渲染)能在房间内开启吗?
不可以,需要在加入房间前调用,调用后在房间内不能修改。
- iOS端是否可以监听远端离开房间?
可以使用onRemoteUserOffline监听用户离开房间事件。
- 一个房间里可以同时有多路屏幕分享吗?
不能,目前支持一个房间内只能有一路辅流屏幕分享。
- 为什么入会的时候没有声音?
可能性1:入会前没有订阅音频。
可能性2:服务端出现问题。
可能性3:远端没有开启视频流。
- SparkRTC支持哪几种系统音量模式?
支持两种模式:媒体音量和通话音量。
- 媒体音量:播放背景音乐、视频、混音的音量,媒体音量可以调整到零。
- 通话音量:是指在进行音视频通话的音量,通话音量不可以调整到零。