类 | |
---|---|
struct | AudioFrame |
Public 类型 | |
---|---|
enum | AUDIO_FRAME_TYPE { FRAME_TYPE_PCM16 = 0 } |
Public 成员函数 | |
---|---|
virtual bool | onRecordAudioFrame (AudioFrame &audioFrame)=0 |
virtual bool | onPlaybackAudioFrame (AudioFrame &audioFrame)=0 |
virtual bool | onMixedAudioFrame (AudioFrame &audioFrame)=0 |
virtual bool | onPlaybackAudioFrameBeforeMixing (unsigned int uid, AudioFrame &audioFrame)=0 |
virtual bool | isMultipleChannelFrameWanted () |
virtual bool | onPlaybackAudioFrameBeforeMixingEx (const char *channelId, unsigned int uid, AudioFrame &audioFrame) |
详细描述
IAudioFrameObserver 类
成员枚举类型说明
AUDIO_FRAME_TYPE
enum AUDIO_FRAME_TYPE
音频帧类型
枚举值
枚举值 | 描述 |
---|---|
**FRAME_TYPE_PCM16 ** | 0: PCM 16 |
成员函数说明
onRecordAudioFrame
virtual bool ar::media::IAudioFrameObserver::onRecordAudioFrame
获得录制的声音
参数
参数 | 描述 |
---|---|
audioFrame | 音频裸数据。详见: AudioFrame |
返回值
- true: AudioFrame 中 buffer 数据有效,数据会被发送;
- false: AudioFrame 中 buffer 数据无效,数据会被舍弃。
onPlaybackAudioFrame
virtual bool onPlaybackAudioFrame(AudioFrame& audioFrame)
获得播放的声音
参数
参数 | 描述 |
---|---|
audioFrame | 音频裸数据。详见: AudioFrame |
返回值
- true: AudioFrame 中 buffer 数据有效,数据会被发送;
- false: AudioFrame 中 buffer 数据无效,数据会被舍弃。
onMixedAudioFrame
virtual bool onMixedAudioFrame(AudioFrame& audioFrame)
获取录制和播放语音混音后的数据
参数
参数 | 描述 |
---|---|
audioFrame | 音频裸数据。详见: AudioFrame |
返回值
- true: AudioFrame 中 buffer 数据有效,数据会被发送;
- false: AudioFrame 中 buffer 数据无效,数据会被舍弃。
注意事项:
该方法仅返回单通道数据。
onPlaybackAudioFrameBeforeMixing
virtual bool onPlaybackAudioFrameBeforeMixing(const char* uid,AudioFrame& audioFrame)
获得混音前的指定用户的声音
参数
参数 | 描述 |
---|---|
uid | 指定用户的用户 ID。 |
audioFrame | 音频裸数据。详见: AudioFrame 。 |
返回值
- true: AudioFrame 中 buffer 数据有效,数据会被发送;
- false: AudioFrame 中 buffer 数据无效,数据会被舍弃。
isMultipleChannelFrameWanted
virtual bool ar::media::IAudioFrameObserver::isMultipleChannelFrameWanted
多频道场景下,设置是否获取多个频道的音频数据
成功注册音频观测器后,SDK 会在捕捉到每个音频帧的时候触发该回调.
在多频道场景下,如果你希望从多个频道获取音频数据,则需要将该回调的返回值设为 true。 成功设置后,SDK 会触发 onPlaybackAudioFrameBeforeMixingEx 回调,向你发送接收的混音前的音频帧,并报告该音频帧来自哪个频道。
参数
参数 | 描述 |
---|---|
uid | 指定用户的用户 ID。 |
audioFrame | 音频裸数据。详见: AudioFrame 。 |
返回值
- true: 获取多个频道的音频帧。
- false: 不获取多个频道的音频帧。
注意事项:
- 一旦你将该回调的返回值设为 true,则 SDK 只触发 onPlaybackAudioFrameBeforeMixingEx 来返回接收到的混音前的音频数据。 onPlaybackAudioFrameBeforeMixing 将不会被触发。在多频道场景下,我们建议你将该回调的返回值设为 true。
- 如果你将该回调的返回值设为 false,则 SDK 只触发 onPlaybackAudioFrameBeforeMixing 来返回接收到的音频数据。
onPlaybackAudioFrameBeforeMixingEx
virtual bool onPlaybackAudioFrameBeforeMixing(const char* uid,AudioFrame& audioFrame)
获取各频道混音前的音频播放数据
成功注册音频观测器后,如果你将 isMultipleChannelFrameWanted 的返回值设为 true,则 SDK 会在捕捉到各频道内混音前的音频数据时,触发该回调,将音频数据发送给你。
参数
参数 | 描述 |
---|---|
channelId | 该音频帧所在的频道名 |
uid | 发送该音频帧的用户 ID |
audioFrame | AudioFrame |
返回值
- true: AudioFrame 内的音频帧有效,发送该音频帧。
- false: AudioFrame 内的音频帧无效,丢弃该音频帧。