原始音频数据

  • iOS

更新时间不可用

getEarMonitoringAudioParams

设置 onEarMonitoringAudioFrame: 回调的音频格式。

Objective-C
- (AgoraAudioParams* _Nonnull)getEarMonitoringAudioParams NS_SWIFT_NAME(getEarMonitoringAudioParams());

你需要在调用 setAudioFrameDelegate: 方法注册回调后,才能设置音频格式。成功注册音频观测器后,SDK 会触发该回调,你可以在该回调的返回值中设置音频格式。

注: SDK 会根据你在返回值中设置的 AgoraAudioParams 计算采样间隔,并以该间隔触发 onEarMonitoringAudioFrame: 回调。采样间隔(秒) = samplePerCall / (sampleRate × channel)。确保采样间隔 ≥ 0.01 秒。

返回值

方法调用成功,返回耳返音频数据格式对象,详见 AgoraAudioParams。

所属接口类

getMixedAudioParams

设置 onMixedAudioFrame:channelId: 回调的音频格式。

Objective-C
- (AgoraAudioParams* _Nonnull)getMixedAudioParams NS_SWIFT_NAME(getMixedAudioParams());

你需要在调用 setAudioFrameDelegate: 方法时注册该回调。在成功注册音频观测器后,SDK 会触发该回调,你可以在该回调的返回值中设置音频格式。

注: SDK 会根据你在返回值中设置的采样间隔触发 onMixedAudioFrame:channelId: 回调。采样间隔的计算公式为:采样间隔(秒) = samplePerCall /(sampleRate × channel)。确保采样间隔 ≥ 0.01 秒。

返回值

方法调用成功,返回混合后的采集和播放音频数据对象,详见 AgoraAudioParams。

所属接口类

getObservedAudioFramePosition

设置音频数据观察位置。

Objective-C
- (AgoraAudioFramePosition)getObservedAudioFramePosition NS_SWIFT_NAME(getObservedAudioFramePosition());

成功注册音频数据观察器后,SDK 会在每个特定的音频帧处理节点使用该回调,以判断是否触发以下回调:

你可以根据场景需求,通过修改 getObservedAudioFramePosition 的返回值设置需要观察的一个或多个位置。当你需要观察多个位置时,需使用 |(或运算符)。为节省系统资源,建议减少观察位置的数量。

返回值

返回一个位掩码,用于设置观察位置,具体取值如下,详见 AgoraAudioFramePosition:

  • AgoraAudioFramePositionPlayback(0x0001):该位置可观察所有远端用户混音后的播放音频。对应 onPlaybackAudioFrame: 回调。
  • AgoraAudioFramePositionRecord(0x0002):该位置可观察本地用户采集的音频。对应 onRecordAudioFrame:channelId: 回调。
  • AgoraAudioFramePositionMixed(0x0004):该位置可观察本地用户与所有远端用户混音后的播放音频。对应 onMixedAudioFrame:channelId: 回调。
  • AgoraAudioFramePositionBeforeMixing(0x0008):该位置可观察单个远端用户混音前的音频。对应 onPlaybackAudioFrameBeforeMixing:channelId:uid: 回调。
  • AgoraAudioFramePositionEarMonitoring(0x0010):该位置可观察本地用户的耳返音频。对应 onEarMonitoringAudioFrame: 回调。

所属接口类

getPlaybackAudioParams

设置 onPlaybackAudioFrame:channelId: 回调的音频格式。

Objective-C
- (AgoraAudioParams* _Nonnull)getPlaybackAudioParams NS_SWIFT_NAME(getPlaybackAudioParams());

你需要在调用 setAudioFrameDelegate: 方法时注册回调。成功注册音频观察器后,SDK 会触发该回调,你可以在该回调的返回值中设置音频格式。

注: SDK 会根据你在返回值中设置的 AgoraAudioParams 计算采样间隔,并以此触发 onPlaybackAudioFrame:channelId: 回调。采样间隔(秒)= samplePerCall / (sampleRate × channel)。确保采样间隔 ≥ 0.01 秒。

返回值

方法调用成功,返回用于播放的音频参数对象,详见 AgoraAudioParams。

所属接口类

getRecordAudioParams

设置 onRecordAudioFrame:channelId: 回调的音频格式。

Objective-C
- (AgoraAudioParams* _Nonnull)getRecordAudioParams NS_SWIFT_NAME(getRecordAudioParams());

调用 setAudioFrameDelegate: 方法注册回调后,SDK 会触发 onRecordAudioFrame:channelId: 回调。你可以在该回调的返回值中设置音频格式。

注: SDK 会根据你在返回值中设置的采样间隔计算公式触发 onRecordAudioFrame:channelId: 回调。采样间隔(秒) = samplePerCall / (sampleRate × channel)。确保采样间隔 ≥ 0.01 秒。

返回值

方法调用成功,返回采集的音频参数对象,详见 AgoraAudioParams。

所属接口类

setAudioFrameDelegate:

注册音频帧观察者对象。

Objective-C
- (BOOL)setAudioFrameDelegate:(id<AgoraAudioFrameDelegate> _Nullable)delegate NS_SWIFT_NAME(setAudioFrameDelegate(_:));

调用此方法可注册音频帧观察者对象。当你需要 SDK 触发 onMixedAudioFrame、onRecordAudioFrame、onPlaybackAudioFrame、onPlaybackAudioFrameBeforeMixing 或 onEarMonitoringAudioFrame 回调时,需要通过此方法注册回调。

调用时机

该方法需要在加入频道前调用。

参数

参数名描述
delegate

观察者实例。将该参数设为 nil 可释放该实例。声网建议在收到 rtcEngine:didLeaveChannelWithStats: 回调后调用此方法释放音频观察者对象。详见 AgoraAudioFrameDelegate。

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

返回值

  • YES:方法调用成功。
  • NO:方法调用失败。

所属接口类

setEarMonitoringAudioFrameParametersWithSampleRate:channel:mode:samplesPerCall:

设置耳返原始音频数据的格式。

Objective-C
- (int)setEarMonitoringAudioFrameParametersWithSampleRate:(NSInteger)sampleRate
                                                  channel:(NSInteger)channel
                                                     mode:(AgoraAudioRawFrameOperationMode)mode
                                           samplesPerCall:(NSInteger)samplesPerCall NS_SWIFT_NAME(setEarMonitoringAudioFrameParametersWithSampleRate(_:channel:mode:samplesPerCall:));

该方法用于设置 onEarMonitoringAudioFrame: 回调中报告的耳返音频数据格式。

注:

  • 在调用该方法前,你需要先调用 enableInEarMonitoring 方法,并将 includeAudioFilters 设置为 AgoraEarMonitoringFilterBuiltInAudioFilters 或 AgoraEarMonitoringFilterNoiseSuppression。
  • SDK 会根据该方法中设置的 samplesPerCall、sampleRate 和 channel 参数计算采样间隔。采样间隔(秒)= samplesPerCall /(sampleRate × channel)。请确保采样间隔 ≥ 0.01 秒。SDK 会根据采样间隔触发 onEarMonitoringAudioFrame: 回调。

参数

参数名描述
sampleRate

在 onEarMonitoringAudioFrame: 回调中报告的音频数据的采样率,可设置为 8000、16000、32000、44100 或 48000 Hz。

channel

在 onEarMonitoringAudioFrame: 回调中报告的音频声道数。

  • 1:单声道。
  • 2:双声道。
mode

音频帧的使用模式,详见 AgoraAudioRawFrameOperationMode。

samplesPerCall

在 onEarMonitoringAudioFrame: 回调中报告的数据采样数,例如媒体推流时为 1024。

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

返回值

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

所属接口类

setMixedAudioFrameParametersWithSampleRate:channel:samplesPerCall:

设置用于音频采集和播放的混音后原始音频数据格式。

Objective-C
- (int)setMixedAudioFrameParametersWithSampleRate:(NSInteger)sampleRate
                                          channel:(NSInteger)channel
                                   samplesPerCall:(NSInteger)samplesPerCall NS_SWIFT_NAME(setMixedAudioFrameParametersWithSampleRate(_:channel:samplesPerCall:));

SDK 会根据你设置的 samplesPerCall、sampleRate 和 channel 参数计算采样间隔。采样间隔(秒) = samplesPerCall / (sampleRate × channel),请确保采样间隔 ≥ 0.01 秒。SDK 会根据采样间隔触发 onMixedAudioFrame:channelId: 回调。

调用时机

请在加入频道前调用该方法。

参数

参数名描述
sampleRate

回调中返回的采样率,可设置为 8000、16000、32000、44100 或 48000 Hz。

channel

音频声道数,可设置为 1 或 2。

  • 1:单声道。
  • 2:立体声。
samplesPerCall

每次回调的数据采样数,例如媒体推流时为 1024。

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

返回值

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

所属接口类

setPlaybackAudioFrameBeforeMixingParametersWithSampleRate:channel:

设置混音前原始音频播放数据的格式。

Objective-C
- (int)setPlaybackAudioFrameBeforeMixingParametersWithSampleRate:(NSInteger)sampleRate
                                                         channel:(NSInteger)channel NS_SWIFT_NAME(setPlaybackAudioFrameBeforeMixingParametersWithSampleRate(_:channel:));

你可以在加入频道前调用该方法,设置混音前原始音频播放数据的采样率和声道数。SDK 会根据采样间隔触发 onPlaybackAudioFrameBeforeMixing:channelId:uid: 回调。

调用时机

在加入频道前调用该方法。

参数

参数名描述
sampleRate

回调中返回的采样率。可设置为 8000、16000、32000、44100 或 48000 Hz。

channel

音频声道数。可设置为 1 或 2。

  • 1:单声道。
  • 2:立体声。
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

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

所属接口类

setPlaybackAudioFrameBeforeMixingParametersWithSampleRate:channel:samplesPerCall:

设置 onPlaybackAudioFrameBeforeMixing:channelId:uid: 回调中音频数据的格式。

Objective-C
- (int)setPlaybackAudioFrameBeforeMixingParametersWithSampleRate:(NSInteger)sampleRate
                                                         channel:(NSInteger)channel
                                                  samplesPerCall:(NSInteger)samplesPerCall NS_SWIFT_NAME(setPlaybackAudioFrameBeforeMixingParametersWithSampleRate(_:channel:samplesPerCall:));

用于设置 onPlaybackAudioFrameBeforeMixing:channelId:uid: 回调中返回的音频数据的采样率、声道数和每次回调的采样点数。

参数

参数名描述
sampleRate

设置 onPlaybackAudioFrameBeforeMixing:channelId:uid: 回调中返回的采样率(Hz)。可设置为以下值:8000、16000、32000、44100 或 48000。

channel

设置 onPlaybackAudioFrameBeforeMixing:channelId:uid: 回调中返回的音频数据的声道数。

  • 1:单声道。
  • 2:立体声。
samplesPerCall

设置 onPlaybackAudioFrameBeforeMixing:channelId:uid: 回调中返回的数据的每次回调采样点数。例如,在 RTMP 推流场景中,建议设置为 1024。

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

返回值

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

所属接口类

setPlaybackAudioFrameParametersWithSampleRate:channel:mode:samplesPerCall:

设置原始音频播放数据的格式。

Objective-C
- (int)setPlaybackAudioFrameParametersWithSampleRate:(NSInteger)sampleRate
                                              channel:(NSInteger)channel
                                                 mode:(AgoraAudioRawFrameOperationMode)mode
                                       samplesPerCall:(NSInteger)samplesPerCall NS_SWIFT_NAME(setPlaybackAudioFrameParametersWithSampleRate(_:channel:mode:samplesPerCall:));

SDK 会根据你设置的 samplesPerCall、sampleRate 和 channel 参数计算采样间隔。采样间隔(秒)= samplesPerCall / (sampleRate × channel)。请确保采样间隔 ≥ 0.01 秒。

调用时机

请在加入频道前调用该方法。

相关回调

SDK 会根据采样间隔触发 onPlaybackAudioFrame: 回调。

参数

参数名描述
sampleRate

回调中返回的采样率。可设置为 8000、16000、24000、32000、44100 或 48000 Hz。

channel

音频声道数。可设置为以下取值:

  • 1:单声道。
  • 2:立体声。
mode

音频帧的使用模式。详见 AgoraAudioRawFrameOperationMode。

samplesPerCall

每次回调的数据采样数,例如媒体推流时为 1024。

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

返回值

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

所属接口类

setRecordingAudioFrameParametersWithSampleRate:channel:mode:samplesPerCall:

设置采集的原始音频数据格式。

Objective-C
- (int)setRecordingAudioFrameParametersWithSampleRate:(NSInteger)sampleRate
                                              channel:(NSInteger)channel
                                                 mode:(AgoraAudioRawFrameOperationMode)mode
                                       samplesPerCall:(NSInteger)samplesPerCall NS_SWIFT_NAME(setRecordingAudioFrameParametersWithSampleRate(_:channel:mode:samplesPerCall:));

SDK 会根据你设置的 samplesPerCall、sampleRate 和 channel 参数计算采样间隔。采样间隔(单位:秒)= samplesPerCall / (sampleRate × channel)。请确保采样间隔 ≥ 0.01 秒。SDK 会根据采样间隔触发 onRecordAudioFrame:channelId: 回调。

调用时机

请在加入频道前调用该方法。

参数

参数名描述
sampleRate

回调中返回的采样率。可设置为 8000、16000、32000、44100 或 48000 Hz。

channel

音频声道数。可设置为:

  • 1:单声道。
  • 2:双声道。
mode

音频帧的使用模式,详见 AgoraAudioRawFrameOperationMode。

samplesPerCall

每次回调的数据采样数,例如媒体推流时为 1024。

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

返回值

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

所属接口类

onEarMonitoringAudioFrame:

获取耳返音频帧回调。

Objective-C
- (BOOL)onEarMonitoringAudioFrame:(AgoraAudioFrame* _Nonnull)frame NS_SWIFT_NAME(onEarMonitoringAudioFrame(_:));

为了确保你获取的耳返音频数据符合预期,声网建议你通过以下两种方式之一设置耳返音频数据格式:

注:

  • 方法一的优先级高于方法二。如果使用方法一设置音频数据格式,则方法二的设置无效。

触发时机

该回调在采样间隔到达时被触发。

参数

参数名描述
frame

原始音频数据,详见 AgoraAudioFrame。

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

返回值

  • YES:回调处理成功。
  • NO:回调处理失败。

所属接口类

onMixedAudioFrame:channelId:

获取混合后的采集和播放音频帧回调。

Objective-C
- (BOOL)onMixedAudioFrame:(AgoraAudioFrame* _Nonnull)frame channelId:(NSString * _Nonnull)channelId  NS_SWIFT_NAME(onMixedAudioFrame(_:channelId:));

为了确保混合后的采集和播放音频帧的数据格式符合预期,声网建议你通过以下两种方式之一设置音频数据格式:

注:

  • 方法一的优先级高于方法二。如果使用方法一设置音频数据格式,则方法二的设置无效。

触发时机

该回调在获取混合后的采集和播放音频帧时被触发。

参数

参数名描述
frame

原始音频数据,详见 AgoraAudioFrame。

channelId

频道 ID。

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

返回值

  • YES:回调处理成功。
  • NO:回调处理失败。

所属接口类

onPlaybackAudioFrame:channelId:

获取用于播放的原始音频帧回调。

Objective-C
- (BOOL)onPlaybackAudioFrame:(AgoraAudioFrame* _Nonnull)frame channelId:(NSString * _Nonnull)channelId  NS_SWIFT_NAME(onPlaybackAudioFrame(_:channelId:));

为了确保播放音频帧的数据格式符合预期,声网建议你通过以下两种方法之一设置音频数据格式:

注: setPlaybackAudioFrameParametersWithSampleRate:channel:mode:samplesPerCall: 的优先级高于 getObservedAudioFramePosition 和 getPlaybackAudioParams。如果使用方法一设置音频数据格式,则方法二的设置无效。

触发时机

该回调在 SDK 获取到用于播放的音频帧时被触发。

参数

参数名描述
frame

原始音频数据,详见 AgoraAudioFrame。

channelId

频道 ID。

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

返回值

  • YES:处理成功。
  • NO:处理失败。

所属接口类

onPlaybackAudioFrameBeforeMixing:channelId:uid:

获取已订阅远端用户在混音前的音频帧。

Objective-C
- (BOOL)onPlaybackAudioFrameBeforeMixing:(AgoraAudioFrame* _Nonnull)frame channelId:(NSString * _Nonnull)channelId uid:(NSUInteger)uid  NS_SWIFT_NAME(onPlaybackAudioFrame(beforeMixing:channelId:uid:));

参数

参数名描述
frame

原始音频数据,详见 AgoraAudioFrame。

channelId

频道 ID。

uid

远端用户 ID。

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

返回值

  • YES:回调处理成功。
  • NO:回调处理失败。

所属接口类

onRecordAudioFrame:channelId:

采集到音频帧时触发的回调。

Objective-C
- (BOOL)onRecordAudioFrame:(AgoraAudioFrame* _Nonnull)frame channelId:(NSString * _Nonnull)channelId  NS_SWIFT_NAME(onRecordAudioFrame(_:channelId:));

你可以通过以下两种方式之一设置音频数据格式,以确保采集到的音频帧格式符合预期:

注: setRecordingAudioFrameParametersWithSampleRate:channel:mode:samplesPerCall: 的设置优先级高于 getObservedAudioFramePosition 和 getRecordAudioParams 的设置。如果使用方法一设置音频数据格式,则方法二的设置无效。

触发时机

该回调在采集到音频帧时被触发。

参数

参数名描述
frame

原始音频数据,详见 AgoraAudioFrame。

channelId

频道 ID。

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

返回值

  • YES:处理成功。
  • NO:处理失败。

所属接口类