AgoraAudioDataFrameProtocol Protocol Reference
Conforms to | NSObject |
---|---|
Declared in | AgoraAudioFrame.h |
– 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
回调来判断是否触发如下回调:
- onRecordAudioFrame
- onPlaybackAudioFrame
- onMixedAudioFrame
- onPlaybackAudioFrameBeforeMixing 或 onPlaybackAudioFrameBeforeMixingEx
你可以根据场景需求,通过修改 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 方法时注册以下回调并设置相应的返回值:
- getObservedAudioFramePosition:
将其返回值设为
AgoraAudioFramePositionBeforeMixing (1 << 3)
。 - isMultipleChannelFrameWanted:
将其返回值设为
YES
。
设置成功后,SDK 默认每 10 ms 触发一次 onPlaybackAudioFrameBeforeMixingEx
回调。
Declared In
AgoraAudioFrame.h