IAudioFrameObserver

最近更新时间:2022-09-20 05:17:40

structAudioFrame
Public 类型
enumAUDIO_FRAME_TYPE { FRAME_TYPE_PCM16 = 0 }
Public 成员函数
virtual boolonRecordAudioFrame (AudioFrame &audioFrame)=0
virtual boolonPlaybackAudioFrame (AudioFrame &audioFrame)=0
virtual boolonMixedAudioFrame (AudioFrame &audioFrame)=0
virtual boolonPlaybackAudioFrameBeforeMixing (unsigned int uid, AudioFrame &audioFrame)=0
virtual boolisMultipleChannelFrameWanted ()
virtual boolonPlaybackAudioFrameBeforeMixingEx (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
audioFrameAudioFrame

返回值

  • true: AudioFrame 内的音频帧有效,发送该音频帧。
  • false: AudioFrame 内的音频帧无效,丢弃该音频帧。