IAgoraRtcAudioFrameObserver
语音观测器。
你可以调用 RegisterAudioFrameObserver 注册或取消注册 IAgoraRtcAudioFrameObserver 语音观测器。
IsMultipleChannelFrameWanted
多频道场景下,设置是否获取多个频道的音频数据。
public virtual bool IsMultipleChannelFrameWanted() { return true; }
- 自从
- v3.0.1
成功注册音频观测器后,SDK 会在捕捉到每个音频帧的时候触发该回调。
在多频道场景下,如果你希望从多个频道获取音频数据,则需要将该回调的返回值设为 true。 成功设置后,SDK 会触发 OnPlaybackAudioFrameBeforeMixingEx 回调,向你发送接收的混音前的音频帧,并报告该音频帧来自哪个频道。
注意:
- 一旦你将该回调的返回值设为 true,则 SDK 只触发 OnPlaybackAudioFrameBeforeMixingEx 来返回接收到的混音前的音频数据。OnPlaybackAudioFrameBeforeMixing 将不会被触发。在多频道场景下,我们建议你将该回调的返回值设为 true。
- 如果你将该回调的返回值设为 false,则 SDK 只触发 OnPlaybackAudioFrameBeforeMixing 来返回接收到的音频数据。
返回值
true
: 获取多个频道的音频帧。false
: 不获取多个频道的音频帧。
OnMixedAudioFrame
获取采集和播放语音混音后的数据。
public virtual bool OnMixedAudioFrame(AudioFrame audioFrame) { return true; }
注意: 该方法仅返回单通道数据。
参数
- audioFrame
- 音频原始数据。详见 AudioFrame。
返回值
true
: 音频帧数据有效,数据会被发送。false
: 音频帧数据无效,数据会被舍弃。
OnPlaybackAudioFrame
获得播放的声音。
public virtual bool OnPlaybackAudioFrame(AudioFrame audioFrame) { return true; }
参数
- audioFrame
- 音频原始数据。详见 AudioFrame。
返回值
true
: 音频帧数据有效,数据会被发送。false
: 音频帧数据无效,数据会被舍弃。
OnPlaybackAudioFrameBeforeMixing
获得混音前的指定用户的声音。
public virtual bool OnPlaybackAudioFrameBeforeMixing(uint uid, AudioFrame audioFrame) { return true; }
参数
- uid
- 指定用户的用户 ID。
- audioFrame
- 音频原始数据。详见 AudioFrame。
返回值
true
: 音频帧数据有效,数据会被发送。false
: 音频帧数据无效,数据会被舍弃。
OnPlaybackAudioFrameBeforeMixingEx
获取各频道混音前的音频播放数据。
public virtual bool OnPlaybackAudioFrameBeforeMixingEx(string channelId, uint uid, AudioFrame audioFrame) { return true; }
成功注册音频观测器后,如果你将 IsMultipleChannelFrameWanted 的返回值设为 true,则 SDK 会在捕捉到各频道内混音前的音频数据时,触发该回调,将音频数据发送给你。
参数
- channelId
- 该音频帧所在的频道名。
- uid
- 发送该音频帧的用户 ID。
- audioFrame
- 音频原始数据。详见 AudioFrame。
返回值
true
: AudioFrame 中 buffer 数据有效,数据会被发送。false
: AudioFrame 中 buffer 数据无效,数据会被舍弃。
OnRecordAudioFrame
获得采集的音频。
public virtual bool OnRecordAudioFrame(AudioFrame audioFrame) { return true; }
参数
- audioFrame
- 音频原始数据。详见 AudioFrame。
返回值
true
: 音频帧数据有效,数据会被发送。false
: 音频帧数据无效,数据会被舍弃。