原始音频数据
getEarMonitoringAudioParams
设置 onEarMonitoringAudioFrame: 回调的音频格式。
- (AgoraAudioParams* _Nonnull)getEarMonitoringAudioParams NS_SWIFT_NAME(getEarMonitoringAudioParams());
你需要在调用 setAudioFrameDelegate: 方法注册回调后,才能设置音频格式。成功注册音频观测器后,SDK 会触发该回调,你可以在该回调的返回值中设置音频格式。
samplePerCall / (sampleRate × channel)。确保采样间隔 ≥ 0.01 秒。返回值
方法调用成功,返回耳返音频数据格式对象,详见 AgoraAudioParams。
所属接口类getMixedAudioParams
设置 onMixedAudioFrame:channelId: 回调的音频格式。
- (AgoraAudioParams* _Nonnull)getMixedAudioParams NS_SWIFT_NAME(getMixedAudioParams());
你需要在调用 setAudioFrameDelegate: 方法时注册该回调。在成功注册音频观测器后,SDK 会触发该回调,你可以在该回调的返回值中设置音频格式。
samplePerCall /(sampleRate × channel)。确保采样间隔 ≥ 0.01 秒。返回值
方法调用成功,返回混合后的采集和播放音频数据对象,详见 AgoraAudioParams。
所属接口类getObservedAudioFramePosition
设置音频数据观察位置。
- (AgoraAudioFramePosition)getObservedAudioFramePosition NS_SWIFT_NAME(getObservedAudioFramePosition());
- onRecordAudioFrame:channelId:
- onPlaybackAudioFrame:channelId:
- onPlaybackAudioFrameBeforeMixing:channelId:uid:
- onMixedAudioFrame:channelId:
- onEarMonitoringAudioFrame:
返回值
AgoraAudioFramePosition: AgoraAudioFramePositionPlayback(0x0001):该位置可观察所有远端用户混音后的播放音频。对应onPlaybackAudioFrame:回调。AgoraAudioFramePositionRecord(0x0002):该位置可观察本地用户采集的音频。对应 onRecordAudioFrame:channelId: 回调。AgoraAudioFramePositionMixed(0x0004):该位置可观察本地用户与所有远端用户混音后的播放音频。对应 onMixedAudioFrame:channelId: 回调。AgoraAudioFramePositionBeforeMixing(0x0008):该位置可观察单个远端用户混音前的音频。对应 onPlaybackAudioFrameBeforeMixing:channelId:uid: 回调。AgoraAudioFramePositionEarMonitoring(0x0010):该位置可观察本地用户的耳返音频。对应 onEarMonitoringAudioFrame: 回调。
getPlaybackAudioParams
设置 onPlaybackAudioFrame: 回调的音频格式。
- (AgoraAudioParams* _Nonnull)getPlaybackAudioParams NS_SWIFT_NAME(getPlaybackAudioParams());
你需要在调用 setAudioFrameDelegate: 方法时注册回调。成功注册音频观察器后,SDK 会触发该回调,你可以在该回调的返回值中设置音频格式。
onPlaybackAudioFrame: 回调。采样间隔(秒)= samplePerCall / (sampleRate × channel)。确保采样间隔 ≥ 0.01 秒。返回值
方法调用成功,返回用于播放的音频参数对象,详见 AgoraAudioParams。
所属接口类getRecordAudioParams
设置 onRecordAudioFrame:channelId: 回调的音频格式。
- (AgoraAudioParams* _Nonnull)getRecordAudioParams NS_SWIFT_NAME(getRecordAudioParams());
调用 setAudioFrameDelegate: 方法注册回调后,SDK 会触发 onRecordAudioFrame:channelId: 回调。你可以在该回调的返回值中设置音频格式。
samplePerCall / (sampleRate × channel)。确保采样间隔 ≥ 0.01 秒。返回值
方法调用成功,返回采集的音频参数对象,详见 AgoraAudioParams。
所属接口类setAudioFrameDelegate:
注册音频帧观察者对象。
- (BOOL)setAudioFrameDelegate:(id<AgoraRtcMediaPlayerAudioFrameDelegate> _Nullable)delegate NS_SWIFT_NAME(setAudioFrameDelegate(_:));
调用此方法可注册音频帧观察者对象。当你需要 SDK 触发 onMixedAudioFrame、onRecordAudioFrame、onPlaybackAudioFrame、onPlaybackAudioFrameBeforeMixing 或 onEarMonitoringAudioFrame 回调时,需要通过此方法注册回调。
调用时机
该方法需要在加入频道前调用。
参数
- delegate
- 观察者对象,传入 nil 表示取消注册。详见 AgoraRtcMediaPlayerAudioFrameDelegate。
返回值
- YES:方法调用成功。
- NO:方法调用失败。
setEarMonitoringAudioFrameParametersWithSampleRate:channel:mode:samplesPerCall:
设置耳返原始音频数据的格式。
- (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:
设置用于音频采集和播放的混音后原始音频数据格式。
- (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:
设置混音前原始音频播放数据的格式。
- (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: 回调中音频数据的格式。
- (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:
设置原始音频播放数据的格式。
- (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、32000、44100 或 48000 Hz。
- channel
- 音频声道数,可设置为 1 或 2。
- 1:单声道。
- 2:立体声。
- mode
- 音频帧的使用模式,详见 AgoraAudioRawFrameOperationMode。
- samplesPerCall
- 每次回调返回的数据采样数,例如媒体推流时为 1024。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
setRecordingAudioFrameParametersWithSampleRate:channel:mode:samplesPerCall:
设置采集的原始音频数据格式。
- (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:
获取耳返音频帧回调。
- (BOOL)onEarMonitoringAudioFrame:(AgoraAudioFrame* _Nonnull)frame NS_SWIFT_NAME(onEarMonitoringAudioFrame(_:));
- 方法一:调用 setEarMonitoringAudioFrameParametersWithSampleRate:channel:mode:samplesPerCall: 设置音频数据格式,并调用 setAudioFrameDelegate: 注册音频帧观察者对象。SDK 会根据设置的参数计算采样间隔,并按照采样间隔触发该回调。
- 方法二:调用 setAudioFrameDelegate: 注册音频帧观察者对象,并在 getObservedAudioFramePosition 回调的返回值中设置音频数据格式。SDK 会根据 getEarMonitoringAudioParams 回调的返回值计算采样间隔,并按照采样间隔触发该回调。
- 方法一的优先级高于方法二。如果使用方法一设置音频数据格式,则方法二的设置无效。
触发时机
该回调在采样间隔到达时被触发。
参数
- frame
- 原始音频数据,详见 AgoraAudioFrame。
返回值
- YES:回调处理成功。
- NO:回调处理失败。
onMixedAudioFrame:channelId:
获取混合后的采集和播放音频帧回调。
- (BOOL)onMixedAudioFrame:(AgoraAudioFrame* _Nonnull)frame channelId:(NSString * _Nonnull)channelId NS_SWIFT_NAME(onMixedAudioFrame(_:channelId:));
- 方法一:调用 setMixedAudioFrameParametersWithSampleRate:channel:samplesPerCall: 设置音频数据格式,并调用 setAudioFrameDelegate: 注册音频帧观察者对象。SDK 会根据方法中设置的参数计算采样间隔,并按照采样间隔触发该回调。
- 方法二:调用 setAudioFrameDelegate: 注册音频帧观察者对象,并在 getObservedAudioFramePosition 的返回值中设置音频数据格式。SDK 会根据 getMixedAudioParams 的返回值计算采样间隔,并按照采样间隔触发该回调。
- 方法一的优先级高于方法二。如果使用方法一设置音频数据格式,则方法二的设置无效。
触发时机
该回调在获取混合后的采集和播放音频帧时被触发。
参数
- frame
- 原始音频数据,详见 AgoraAudioFrame。
- channelId
- 频道 ID。
返回值
- YES:回调处理成功。
- NO:回调处理失败。
onPlaybackAudioFrame:channelId:
获取用于播放的原始音频帧回调。
- (BOOL)onPlaybackAudioFrame:(AgoraAudioFrame* _Nonnull)frame channelId:(NSString * _Nonnull)channelId NS_SWIFT_NAME(onPlaybackAudioFrame(_:channelId:));
- 方法一:调用 setPlaybackAudioFrameParametersWithSampleRate:channel:mode:samplesPerCall: 设置音频数据格式,并调用 setAudioFrameDelegate: 注册音频帧观察者对象。SDK 会根据设置的参数计算采样间隔,并按照采样间隔触发该回调。
- 方法二:调用 setAudioFrameDelegate: 注册音频帧观察者对象,并在 getObservedAudioFramePosition 的返回值中设置音频数据格式。SDK 会根据 getPlaybackAudioParams 的返回值计算采样间隔,并按照采样间隔触发该回调。
触发时机
该回调在 SDK 获取到用于播放的音频帧时被触发。
参数
- frame
- 原始音频数据,详见 AgoraAudioFrame。
- channelId
- 频道 ID。
返回值
- YES:处理成功。
- NO:处理失败。
onPlaybackAudioFrameBeforeMixing:channelId:uid:
获取已订阅远端用户在混音前的音频帧。
- (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:
采集到音频帧时触发的回调。
- (BOOL)onRecordAudioFrame:(AgoraAudioFrame* _Nonnull)frame channelId:(NSString * _Nonnull)channelId NS_SWIFT_NAME(onRecordAudioFrame(_:channelId:));
- 方法一:调用 setRecordingAudioFrameParametersWithSampleRate:channel:mode:samplesPerCall: 设置音频数据格式,并调用 setAudioFrameDelegate: 注册音频帧观察者对象。SDK 会根据设置的参数计算采样间隔,并按照采样间隔触发该回调。
- 方法二:调用 setAudioFrameDelegate: 注册音频帧观察者对象,并在 getObservedAudioFramePosition 回调的返回值中设置音频数据格式。SDK 会根据 getRecordAudioParams 回调的返回值计算采样间隔,并按照采样间隔触发该回调。
触发时机
该回调在采集到音频帧时被触发。
参数
- frame
- 原始音频数据,详见 AgoraAudioFrame。
- channelId
- 频道 ID。
返回值
- YES:处理成功。
- NO:处理失败。