原始音频数据
setAudioFrameDelegate
注册音频观测器对象。
- (BOOL)setAudioFrameDelegate:(id<AgoraAudioFrameDelegate> _Nullable)delegate;
该方法用于注册音频观测器对象,即注册回调。当需要 SDK 给出 onMixedAudioFrame
、onRecordAudioFrame
、onPlaybackAudioFrame
或 onEarMonitoringAudioFrame
等回调时,需要使用该方法注册回调。
注意: 该方法需要在加入频道前调用。
参数
参数名 | 描述 |
---|---|
delegate | 接口对象实例。详见 |
返回值
-
YES
:方法调用成功。 -
NO
:方法调用失败。详见错误码
了解详情和解决建议。
setMixedAudioFrameParametersWithSampleRate
设置 onMixedAudioFrame
报告的音频数据格式。
- (int)setMixedAudioFrameParametersWithSampleRate:(NSInteger)sampleRate
channel:(NSInteger)channel
samplesPerCall:(NSInteger)samplesPerCall;
参数
参数名 | 描述 |
---|---|
sampleRate | 音频数据采样率 (Hz),可设置为 |
channel | 音频数据声道数,可设置为 |
samplesPerCall | 音频数据采样点数。旁路推流场景下通常设为 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setPlaybackAudioFrameBeforeMixingParametersWithSampleRate
设置 onPlaybackAudioFrameBeforeMixing
报告的音频数据格式。
- (int)setPlaybackAudioFrameBeforeMixingParametersWithSampleRate:(NSInteger)sampleRate
channel:(NSInteger)channel;
参数
参数名 | 描述 |
---|---|
sampleRate | 音频数据采样率 (Hz),可设置为 |
channel | 音频数据声道数,可设置为 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setPlaybackAudioFrameParametersWithSampleRate
设置播放的音频格式。
- (int)setPlaybackAudioFrameParametersWithSampleRate:(NSInteger)sampleRate
channel:(NSInteger)channel
mode:(AgoraAudioRawFrameOperationMode)mode
samplesPerCall:(NSInteger)samplesPerCall;
该方法设置 onPlaybackAudioFrame
回调数据的格式。
注意:
-
该方法需要在加入频道前调用。
-
SDK 会通过该方法中的
samplesPerCall
、sampleRate
和channel
参数计算出采样间隔,计算公式为采样间隔 =samplesPerCall
/(sampleRate
×channel
)。请确保采样间隔不小于 0.01 秒。SDK 会根据该采样间隔触发onPlaybackAudioFrame
回调。
参数
参数名 | 描述 |
---|---|
sampleRate |
|
channel |
|
mode | 音频帧的使用模式,详见 |
samplesPerCall |
|
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见
错误码
了解详情和解决建议。
setRecordingAudioFrameParametersWithSampleRate
设置采集的原始音频数据格式。
- (int)setRecordingAudioFrameParametersWithSampleRate:(NSInteger)sampleRate
channel:(NSInteger)channel
mode:(AgoraAudioRawFrameOperationMode)mode
samplesPerCall:(NSInteger)samplesPerCall;
该方法设置 onRecordAudioFrame
回调的采集音频格式。
注意:
-
该方法需要在加入频道前调用。
-
SDK 会通过该方法中的
samplesPerCall
、sampleRate
和channel
参数计算出采样间隔,计算公式为采样间隔 =samplesPerCall
/(sampleRate
×channel
)。请确保采样间隔不小于 0.01 秒。SDK 会根据该采样间隔触发onRecordAudioFrame
回调。
参数
参数名 | 描述 |
---|---|
sampleRate |
|
channel |
|
mode | 音频帧的使用模式,详见 |
samplesPerCall |
|
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见
错误码
了解详情和解决建议。
onPlaybackAudioFrameBeforeMixing
获得混音前的指定用户的声音。
- (BOOL)onPlaybackAudioFrameBeforeMixing:(AgoraAudioFrame* _Nonnull)frame channelId:(NSString * _Nonnull)channelId uid:(NSUInteger)uid NS_SWIFT_NAME(onPlaybackAudioFrame(beforeMixing:channelId:uid:));
参数
参数名 | 描述 |
---|---|
uid | 指定用户的用户 ID。 |
frame | 音频原始数据。详见 |
返回值
无实际含义。
所属接口类getMixedAudioParams
设置 onMixedAudioFrame
回调数据的格式。
- (AgoraAudioParams* _Nonnull)getMixedAudioParams NS_SWIFT_NAME(getMixedAudioParams());
你需要在调用 setAudioFrameDelegate
方法时注册该回调。成功注册音频数据观测器后,SDK 会触发该回调,你可以在该回调的返回值中设置 SDK 采集和播放音频混音后的数据格式。
注意:
SDK 会通过你在返回值中设置的 AgoraAudioParams
计算采样间隔触发 onMixedAudioFrame
回调。计算公式为采样间隔 = samplesPerCall
/(sampleRate
× channel
)。
请确保采样间隔不小于 0.01 秒。
返回值
SDK 采集和播放音频混音后的音频数据,详见 AgoraAudioParams
。
getObservedAudioFramePosition
设置音频观测位置。
- (AgoraAudioFramePosition)getObservedAudioFramePosition NS_SWIFT_NAME(getObservedAudioFramePosition());
成功注册音频数据观测器后,SDK 会在每个特定的音频帧处理节点通过该回调来判断是否触发如下回调:
你可以根据场景需求,通过修改 getObservedAudioFramePosition
的返回值,设置你需要观测的某个或多个位置。
注解观测多个位置时,需要使用 |(或运算符)。为降低设备耗能,你可以根据实际需求适当减少观测位置。
返回值
返回设置观测位置的位掩码,取值如下:
-
AgoraAudioFramePositionPlayback (0x0001):该位置可观测所有远端用户混音后的播放音频,对应
onPlaybackAudioFrame
回调。 -
AgoraAudioFramePositionRecord (0x0002):该位置可观测采集的本地用户的音频,对应
onRecordAudioFrame
回调。 -
AgoraAudioFramePositionMixed (0x0004):该位置可观测本地和所有远端用户混音后的音频,对应
onMixedAudioFrame
回调。 -
AgoraAudioFramePositionBeforeMixing (0x0008):该位置可观测单个远端用户混音前的音频,对应
onPlaybackAudioFrameBeforeMixing
回调。 -
AgoraAudioFramePositionEarMonitoring (0x0010):该位置可观测单个本地用户耳返的音频,对应
onEarMonitoringAudioFrame
回调。
getPlaybackAudioParams
设置 onPlaybackAudioFrame
回调数据的格式。
- (AgoraAudioParams* _Nonnull)getPlaybackAudioParams NS_SWIFT_NAME(getPlaybackAudioParams());
你需要在调用 setAudioFrameDelegate
方法时注册该回调。成功注册音频数据观测器后,SDK 会触发该回调,你可以在该回调的返回值中设置 SDK 播放的音频数据格式。
注意:
SDK 会通过你在返回值中设置的 AgoraAudioParams
计算采样间隔触发 onPlaybackAudioFrame
回调。计算公式为采样间隔 = samplesPerCall
/(sampleRate
× channel
)。
请确保采样间隔不小于 0.01 秒。
返回值
SDK 播放的音频数据,详见 AgoraAudioParams
。
getRecordAudioParams
设置 onRecordAudioFrame
回调数据的格式。
- (AgoraAudioParams* _Nonnull)getRecordAudioParams NS_SWIFT_NAME(getRecordAudioParams());
你需要在调用 setAudioFrameDelegate
方法时注册该回调。成功注册音频数据观测器后,SDK 会触发该回调,你可以在该回调的返回值中设置 SDK 采集的音频数据格式。
注意:
SDK 会通过你在返回值中设置的 AgoraAudioParams
计算采样间隔触发 onRecordAudioFrame
回调。计算公式为采样间隔 = samplesPerCall
/(sampleRate
× channel
)。
请确保采样间隔不小于 0.01 秒。
返回值
SDK 采集的音频数据,详见 AgoraAudioParams
。
onPlaybackAudioFrame
获得播放的原始音频数据。
- (BOOL)onPlaybackAudioFrame:(AgoraAudioFrame* _Nonnull)frame;
为保证播放的音频数据格式符合预期,你可以在如下两种方法中任选一种,设置音频的数据格式:
-
方法一:调用
setPlaybackAudioFrameParametersWithSampleRate
设置音频数据格式后,调用setAudioFrameDelegate
注册音频观测器对象,SDK 会根据该方法中的参数计算采样间隔,并根据该采样间隔触发onPlaybackAudioFrame
回调。 -
方法二:调用
setAudioFrameDelegate
注册音频观测器对象后,在getObservedAudioFramePosition
回调的返回值中设置具体的音频观测位置,然后在getPlaybackAudioParams
回调的返回值中设置音频数据格式,SDK 会根据该回调的返回值计算采样间隔,并根据该采样间隔触发onPlaybackAudioFrame
回调。
注:
- 方法一的优先级高于方法二,如果使用方法一设置音频数据格式,方法二设置无效。
参数
参数名 | 描述 |
---|---|
frame | 音频原始数据。详见 |
channelId | 频道 ID。 |
返回值
无实际含义。
所属接口类onRecordAudioFrame
获得采集的原始音频数据。
- (BOOL)onRecordAudioFrame:(AgoraAudioFrame* _Nonnull)frame channelId:(NSString * _Nonnull)channelId NS_SWIFT_NAME(onRecordAudioFrame(_:channelId:));
为保证采集的音频数据格式符合预期,你可以在如下两种方法中任选一种,设置音频的数据格式:
-
方法一:调用
setRecordingAudioFrameParametersWithSampleRate
设置音频数据格式后,调用setAudioFrameDelegate
注册音频观测器对象,SDK 会根据该方法中的参数计算采样间隔,并根据该采样间隔触发onRecordAudioFrame
回调。 -
方法二:调用
setAudioFrameDelegate
注册音频观测器对象后,在getObservedAudioFramePosition
回调的返回值中设置具体的音频观测位置,然后在getRecordAudioParams
回调的返回值中设置音频数据格式,SDK 会根据该回调的返回值计算采样间隔,并根据该采样间隔触发onRecordAudioFrame
回调。
注:
- 方法一的优先级高于方法二,如果使用方法一设置音频数据格式,方法二设置无效。
参数
参数名 | 描述 |
---|---|
frame | 音频原始数据。详见 |
channelId | 频道 ID。 |
返回值
无实际含义。
所属接口类onMixedAudioFrame
获取采集和播放音频混音后的数据。
- (BOOL)onMixedAudioFrame:(AgoraAudioFrame* _Nonnull)frame channelId:(NSString * _Nonnull)channelId NS_SWIFT_NAME(onMixedAudioFrame(_:channelId:));
为保证采集和播放混音后的音频数据格式符合预期,你可以在如下两种方法中任选一种,设置音频的数据格式:
-
方法一:调用
setMixedAudioFrameParametersWithSampleRate
设置音频数据格式后,调用setAudioFrameDelegate
注册音频观测器对象,SDK 会根据该方法中的参数计算采样间隔,并根据该采样间隔触发onMixedAudioFrame
回调。 -
方法二:调用
setAudioFrameDelegate
注册音频观测器对象后,在getObservedAudioFramePosition
回调的返回值中设置具体的音频观测位置,然后在getMixedAudioParams
回调的返回值中设置音频数据格式,SDK 会根据该回调的返回值计算采样间隔,并根据该采样间隔触发onMixedAudioFrame
回调。
注:
- 方法一的优先级高于方法二,如果使用方法一设置音频数据格式,方法二设置无效。
参数
参数名 | 描述 |
---|---|
frame | 音频原始数据。详见 |
channelId | 频道 ID。 |
返回值
无实际含义。
所属接口类