音频设备管理
followSystemPlaybackDevice:
设置 SDK 使用的音频播放设备是否跟随系统默认音频播放设备。
Objective-C
- (int)followSystemPlaybackDevice:(BOOL)enable NS_SWIFT_NAME(followSystemPlaybackDevice(_:));
当系统默认音频播放设备发生变化时,SDK 会根据你的设置自动切换音频播放设备。
参数
- enable
- 是否跟随系统默认音频播放设备:
- YES:跟随系统默认音频播放设备。当系统默认音频播放设备发生变化时,SDK 会立即切换音频播放设备。
- NO:不跟随系统默认音频播放设备。仅当当前使用的音频播放设备断开连接时,SDK 才会切换到系统默认音频播放设备。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
followSystemRecordingDevice:
设置你使用的 SDK 音频录制设备是否跟随系统默认音频录制设备。
Objective-C
- (int)followSystemRecordingDevice:(BOOL)enable NS_SWIFT_NAME(followSystemRecordingDevice(_:));
参数
- enable
- 是否跟随系统默认音频录制设备:
- YES:跟随系统默认音频录制设备。当系统默认音频录制设备发生变化时,SDK 会立即切换音频录制设备。
- NO:不跟随系统默认音频录制设备。仅当当前使用的音频录制设备断开连接时,SDK 才会切换到系统默认音频录制设备。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
getDefaultAudioDevice:
获取系统的默认音频设备。
Objective-C
- (AgoraRtcDeviceInfo* _Nullable)getDefaultAudioDevice:(AgoraMediaDeviceType)type NS_SWIFT_NAME(getDefaultAudioDevice(_:));
参数
- type
- 设备类型,详见 AgoraMediaDeviceType。
返回值
- 方法调用成功时,返回一个 AgoraRtcDeviceInfo 对象,详见 AgoraRtcDeviceInfo。
- 方法调用失败时,返回 nil。
startAudioDeviceLoopbackTest:
开始音频设备回路测试。
Objective-C
- (int)startAudioDeviceLoopbackTest:(int)indicationInterval NS_SWIFT_NAME(startAudioDeviceLoopbackTest(_:));
该方法用于测试本地音频采集设备和播放设备是否正常工作。调用该方法后,音频采集设备会采集本地音频,音频播放设备会播放采集到的音频。
信息
- 可以在加入频道前或加入频道后调用该方法。
- 该方法仅在主播角色下生效。
- 该方法仅测试本地音频设备,不涉及网络状况。
- 测试完成后,请调用 stopAudioDeviceLoopbackTest 停止音频设备回路测试。
参数
- indicationInterval
- SDK 触发 rtcEngine:reportAudioVolumeIndicationOfSpeakers:totalVolume: 回调的时间间隔(毫秒)。声网建议设置大于 200 毫秒的值。该值不能小于 10 毫秒,否则你将无法收到 rtcEngine:reportAudioVolumeIndicationOfSpeakers:totalVolume: 回调。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
startPlaybackDeviceTest:
启动本地音频播放设备测试。
Objective-C
- (int)startPlaybackDeviceTest:(NSString * _Nonnull)audioFileName NS_SWIFT_NAME(startPlaybackDeviceTest(_:));
该方法用于测试本地音频播放设备是否正常工作。调用该方法后,SDK 会播放你指定的音频文件。如果你能听到声音,说明播放设备工作正常。
信息
请在加入频道前调用该方法。测试完成后,在加入频道前调用 stopPlaybackDeviceTest 停止测试。
相关回调
成功调用该方法后,SDK 会每 100 毫秒触发一次 rtcEngine:reportAudioVolumeIndicationOfSpeakers:totalVolume: 回调,报告 uid 为 1 的播放设备音量信息。
参数
- audioFileName
- 音频文件的路径。数据格式为 UTF-8 编码的字符串。
- 支持的文件格式:wav、mp3、m4a 和 aac。
- 支持的采样率:8000、16000、32000、44100 和 48000 Hz。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
startRecordingDeviceTest:
启动音频采集设备测试。
Objective-C
- (int)startRecordingDeviceTest:(int)indicationInterval NS_SWIFT_NAME(startRecordingDeviceTest(_:));
该方法用于测试音频采集设备是否正常工作。调用该方法后,SDK 会按照设置的时间间隔触发 rtcEngine:reportAudioVolumeIndicationOfSpeakers:totalVolume: 回调,报告 uid 为 0 的本地采集设备的音量信息。该方法与 startEchoTestWithConfig: 方法的区别在于,startRecordingDeviceTest: 仅检测本地音频采集设备是否正常工作,而 startEchoTestWithConfig: 可以检测音视频设备和网络状况。
信息
请在加入频道前调用该方法。测试完成后,在加入频道前调用 stopRecordingDeviceTest 停止测试。
参数
- indicationInterval
- 触发 rtcEngine:reportAudioVolumeIndicationOfSpeakers:totalVolume: 回调的时间间隔(毫秒)。该值应大于 10,否则你将无法收到 rtcEngine:reportAudioVolumeIndicationOfSpeakers:totalVolume: 回调,且 SDK 返回错误码 -2。声网建议设置为 100。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
- -2:参数无效。请检查参数设置。
stopAudioDeviceLoopbackTest
停止音频设备回路测试。
Objective-C
- (int)stopAudioDeviceLoopbackTest NS_SWIFT_NAME(stopAudioDeviceLoopbackTest());
信息
- 你可以在加入频道前或后调用此方法。
- 此方法仅在主播角色下生效。
- 调用 startAudioDeviceLoopbackTest: 方法开始回路测试后,请确保调用此方法停止测试。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
stopPlaybackDeviceTest
停止音频播放设备测试。
Objective-C
- (int)stopPlaybackDeviceTest NS_SWIFT_NAME(stopPlaybackDeviceTest());
调用 startPlaybackDeviceTest: 方法开始测试后,必须调用此方法停止测试。
信息
请在加入频道前调用此方法。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。