音频设备管理

  • macOS

更新时间不可用

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。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

所属接口类

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:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

stopRecordingDeviceTest

停止音频采集设备测试。

Objective-C
- (int)stopRecordingDeviceTest NS_SWIFT_NAME(stopRecordingDeviceTest());

该方法用于停止音频采集设备测试。你必须在调用 startRecordingDeviceTest 方法后调用此方法以停止测试。

注: 请在加入频道前调用此方法。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类