AgoraAudioDataFrameProtocol Protocol Reference

Conforms to NSObject
Declared in AgoraAudioFrame.h

Overview

原始音频数据协议。

– onRecordAudioFrame: required method

获取采集的本地用户的音频。

- (BOOL)onRecordAudioFrame:(AgoraAudioFrame *_Nonnull)frame

Parameters

frame

原始音频数据。详见 AgoraAudioFrame

Return Value

  • YES:无实际含义。
  • NO:无实际含义。

Availability

v3.4.5

成功注册音频数据协议后,SDK 默认每 10 ms 触发一次 onRecordAudioFrame 回调, 报告的音频数据格式和采集的音频数据格式相同。

Discussion

Note: 为保证采集到的音频数据格式符合预期,你可以在调用 setAudioDataFrame 方法时注册 getRecordAudioParams 回调,并在该回调的返回值中设置采集的音频数据格式。SDK 会根据 getRecordAudioParams 回调返回值中设置的 AgoraAudioParam 计算采样间隔,并根据该采样间隔触发 onRecordAudioFrame 回调。

Declared In

AgoraAudioFrame.h

– onPlaybackAudioFrame: required method

获取播放的所有远端用户的音频。

- (BOOL)onPlaybackAudioFrame:(AgoraAudioFrame *_Nonnull)frame

Parameters

frame

原始音频数据。详见 AgoraAudioFrame

Return Value

  • YES:无实际含义。
  • NO:无实际含义。

Availability

v3.4.5

成功注册音频数据协议后,SDK 默认每 10 ms 触发一次 onPlaybackAudioFrame 回调, 报告的音频数据格式和播放的音频数据格式相同。

Note

Discussion

Note: 为保证播放的音频数据格式符合预期,你可以在调用 setAudioDataFrame 方法时注册 getPlaybackAudioParams 回调,并在该回调的返回值中设置播放的音频数据格式。SDK 会根据 getPlaybackAudioParams 回调返回值中设置的 AgoraAudioFrame 计算采样间隔,并根据该采样间隔触发 onPlaybackAudioFrame 回调。

Declared In

AgoraAudioFrame.h

– onMixedAudioFrame: required method

获取本地和所有远端用户混音后的音频。

- (BOOL)onMixedAudioFrame:(AgoraAudioFrame *_Nonnull)frame

Parameters

frame

原始音频数据。详见 AgoraAudioFrame

Return Value

  • YES:无实际含义。
  • NO:无实际含义。

Availability

v3.4.5

要触发该回调,你需要在调用 setAudioDataFrame 方法时注册 getObservedAudioFramePosition 回调,并将 getObservedAudioFramePosition 回调的返回值设置为 AgoraAudioFramePositionMixed (1 << 2)。设置成功后,SDK 默认每 10 ms 触发一次 onMixedAudioFrame 回调,报告的音频数据格式和混音后的数据格式相同。

Discussion

Note: 为保证本地和所有远端用户混音后的音频数据格式符合预期,声网推荐你在调用 setAudioDataFrame 方法时注册 getMixedAudioParams 回调, 并在该回调的返回值中设置本地和所有远端用户混音后的音频数据格式。SDK 会根据 getMixedAudioParams 回调返回值中设置的 AgoraAudioFrame 计算采样间隔, 并根据该采样间隔触发 onMixedAudioFrame 回调。

Declared In

AgoraAudioFrame.h

– onPlaybackAudioFrameBeforeMixing:uid: required method

获取混音前单个远端用户的音频。

- (BOOL)onPlaybackAudioFrameBeforeMixing:(AgoraAudioFrame *_Nonnull)frame uid:(NSUInteger)uid

Parameters

frame

原始音频数据。详见 AgoraAudioFrame

uid

远端用户的 UID。

Return Value

  • YES:无实际含义。
  • NO:无实际含义。

Availability

v3.4.5

要触发该回调,你需要在调用 setAudioDataFrame 方法时注册 getObservedAudioFramePosition 回调并将其返回值设为 AgoraAudioFramePositionBeforeMixing (1 << 3)。设置成功后, SDK 默认每 10 ms 触发一次 onPlaybackAudioFrameBeforeMixing 回调。

Declared In

AgoraAudioFrame.h

– getObservedAudioFramePosition required method

设置音频观测位置。

- (AgoraAudioFramePosition)getObservedAudioFramePosition

Return Value

设置观测位置的位掩码。详见 AgoraAudioFramePosition

Availability

v3.4.5

成功注册音频数据协议后,SDK 会在每个特定的音频帧处理节点通过 getObservedAudioFramePosition 回调来判断是否触发如下回调:

你可以根据场景需求,通过修改 getObservedAudioFramePosition 的返回值,设置你需要观测的某个或多个位置。

Note:

  • 观测多个位置时,需要使用 | (或运算符)。
  • getObservedAudioFramePosition 回调的返回值默认为 AgoraAudioFramePositionPlayback (1 << 0)AgoraAudioFramePositionRecord (1 << 1)
  • 为降低设备耗能,你可以根据实际需求适当减少观测位置。

Declared In

AgoraAudioFrame.h

– getMixedAudioParams required method

设置 onMixedAudioFrame 回调数据的格式

- (AgoraAudioParam *_Nonnull)getMixedAudioParams

Return Value

设置 SDK 采集和播放音频混音后的音频数据格式,详见 AgoraAudioParam

Availability

v3.4.5

你需要在调用 setAudioDataFrame 方法时注册 getMixedAudioParams 回调。成功注册音频数据协议后,SDK 会触发 getMixedAudioParams 回调,你可以在该回调的返回值中设置 SDK 采集和播放音频混音后的音频数据格式。

Discussion

Note: SDK 会通过你在返回值中设置的 AgoraAudioParam 计算采样间隔,并根据该采样间隔触发 onMixedAudioFrame 回调。 计算公式为采样间隔 = samplesPerCall/(sampleRate × channel)。 请确保采样间隔不得小于 0.01 (s)。

Declared In

AgoraAudioFrame.h

– getRecordAudioParams required method

设置 onRecordAudioFrame 回调数据的格式

- (AgoraAudioParam *_Nonnull)getRecordAudioParams

Return Value

设置 SDK 采集的音频数据格式,详见 AgoraAudioParam

Availability

v3.4.5

你需要在调用 setAudioDataFrame 方法时注册 getRecordAudioParams 回调。成功注册音频数据协议后,SDK 会触发 getRecordAudioParams 回调,你可以在该回调的返回值中设置 SDK 采集的音频数据格式。

Discussion

Note: SDK 会通过你在返回值中设置的 AgoraAudioParam 计算采样间隔,并根据该采样间隔触发 onRecordAudioFrame 回调。 计算公式为采样间隔 = samplesPerCall/(sampleRate × channel)。 请确保采样间隔不得小于 0.01 (s)。

Declared In

AgoraAudioFrame.h

– getPlaybackAudioParams required method

设置 onPlaybackAudioFrame 回调数据的格式

- (AgoraAudioParam *_Nonnull)getPlaybackAudioParams

Return Value

设置 SDK 播放的音频数据格式,详见 AgoraAudioParam

Availability

v3.4.5

你需要在调用 setAudioDataFrame 方法时注册 getPlaybackAudioParams 回调。成功注册音频数据协议后,SDK 会触发 getPlaybackAudioParams 回调,你可以在该回调的返回值中设置 SDK 播放的音频数据格式。

Discussion

Note: SDK 会通过你在返回值中设置的 AgoraAudioParam 计算采样间隔,并根据该采样间隔触发 onPlaybackAudioFrame 回调。 计算公式为采样间隔 = samplesPerCall/(sampleRate × channel)。 请确保采样间隔不得小于 0.01 (s)。

Declared In

AgoraAudioFrame.h

– isMultipleChannelFrameWanted

多频道场景下,设置是否获取多个频道的原始音频数据。

- (BOOL)isMultipleChannelFrameWanted

Return Value

  • YES:获取多个频道的音频数据。
  • NO:不获取多个频道的音频数据。

Availability

v3.5.0

成功注册音频观测器后,SDK 会在捕捉到每个音频帧的时候触发该回调。

在多频道场景下,如果你希望从多个频道获取音频数据,则需要将该回调的返回值设为 YES,并将 getObservedAudioFramePosition 的返回值设为 AgoraAudioFramePositionBeforeMixing (1 << 3)。 成功设置后,SDK 会触发 onPlaybackAudioFrameBeforeMixingEx 回调,向你发送接收的混音前的音频帧,并报告该音频帧来自哪个频道。

Note

  • 一旦你将该回调的返回值设为 YES,则 SDK 只触发 onPlaybackAudioFrameBeforeMixingEx 来返回接收到的混音前的音频数据。 onPlaybackAudioFrameBeforeMixing 将不会被触发。在多频道场景下, 我们建议你将该回调的返回值设为 YES
  • 如果你将该回调的返回值设为 NO,则 SDK 只触发 onPlaybackAudioFrameBeforeMixing 来返回接收到的音频数据。

Declared In

AgoraAudioFrame.h

– onPlaybackAudioFrameBeforeMixingEx:channelId:uid:

获取各频道单个远端用户混音前的音频。

- (BOOL)onPlaybackAudioFrameBeforeMixingEx:(AgoraAudioFrame *_Nonnull)frame channelId:(NSString *_Nonnull)channelId uid:(NSUInteger)uid

Parameters

frame

原始音频数据。详见 AgoraAudioFrame

channelId

频道名。

uid

远端用户的 ID。

Return Value

  • YES:无实际含义。
  • NO:无实际含义。

Availability

v3.5.0

要触发该回调,你需要在调用 setAudioDataFrame 方法时注册以下回调并设置相应的返回值:

设置成功后,SDK 默认每 10 ms 触发一次 onPlaybackAudioFrameBeforeMixingEx 回调。

Declared In

AgoraAudioFrame.h