初始化
本部分介绍了实时音视频的初始化方式及其可配置项。
在使用 SDK 前,请务必调用 QNRTC.initRTC 方法进行 RTC 环境的初始化工作
默认配置初始化
直接使用 QNRTCConfiguration.defaultConfiguration 默认配置进行初始化,示例代码如下:
QNRTCConfiguration *configuration = [QNRTCConfiguration defaultConfiguration];
若 QNRTCConfiguration 的默认配置无法满足您的场景需要,您可通过 QNRTCConfiguration 下的几个 init 方法进行自定义配置初始化。
设置媒体传输方式
通过调用初始化方法 QNRTCConfiguration.initWithPolicy[1/3] 设置媒体传输方式,默认使用 UDP 传输。
QNRTCConfiguration *configuration = [[QNRTCConfiguration alloc] initWithPolicy:QNRTCPolicyForceUDP];
其中,媒体传输方式 QNRTCPolicy 有如下几种,可根据实际情况自行选择:
typedef NS_ENUM(NSUInteger, QNRTCPolicy) {
QNRTCPolicyForceUDP = 0, // 使用 UDP
QNRTCPolicyForceTCP, // 使用 TCP
QNRTCPolicyPreferUDP, // 优先 UDP,不通的话自动改为 TCP
};
推流固定分辨率开关
通过调用初始化方法 QNRTCConfiguration.initWithPolicy[2/3] 设置是否在推流时使用固定分辨率,即编码分辨率不随网络变化而波动,默认为 NO 不开启。
QNRTCConfiguration *configuration = [[QNRTCConfiguration alloc] initWithPolicy:QNRTCPolicyForceUDP maintainResolutionEnabled:NO];
通话模式开关
通过调用初始化方法 QNRTCConfiguration.initWithPolicy[3/3] 设置是否使用通话模式,默认为 YES 开启。
QNRTCConfiguration *configuration = [[QNRTCConfiguration alloc] initWithPolicy:QNRTCPolicyForceUDP maintainResolutionEnabled:NO communicationModeOn:YES];
使用声卡并配戴耳机的情况下,建议关闭,可解决声卡模式不匹配带来的音频异常无效等问题
注意:关闭通话模式将直接关闭硬件回声消除,不佩戴耳机的情况下连麦,可能出现回声。
初始化 QNRTC
在配置好 QNRTCConfiguration 后,通过 QNRTC.initRTC 传入。
[QNRTC initRTC:configuration];
销毁 QNRTC
通过 QNRTC.deinit 销毁。在 QNRTC 使用结束后,请务必主动在 dealloc 前调用此接口来释放相应资源
[QNRTC deinit];
设置日志等级
通过调用 QNRTC.setLogLevel 设置 SDK 的日志等级,默认是
[QNRTC setLogLevel:QNRTCLogLevelInfo];
设置成功后,可以通过 QNRTC.enableFileLogging 接口开启日志文件保存。
设置是否将扬声器作为默认音频输出设备
通过调用 QNRTC.setAudioRouteToSpeakerphone 设置是否将扬声器作为默认音频输出设备,默认音频路由为扬声器。
[QNRTC setAudioRouteToSpeakerphone:YES];