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)
 

详细描述

成员枚举类型说明

◆ AUDIO_FRAME_TYPE

音频帧类型

枚举值
FRAME_TYPE_PCM16 

0: PCM 16

成员函数说明

◆ onRecordAudioFrame()

virtual bool agora::media::IAudioFrameObserver::onRecordAudioFrame ( AudioFrame audioFrame)
pure virtual

获得录制的声音。

参数
audioFrame音频裸数据。详见: AudioFrame
返回
  • true: AudioFrame 中 buffer 数据有效,数据会被发送;
  • false: AudioFrame 中 buffer 数据无效,数据会被舍弃。

◆ onPlaybackAudioFrame()

virtual bool agora::media::IAudioFrameObserver::onPlaybackAudioFrame ( AudioFrame audioFrame)
pure virtual

获得播放的声音。

参数
audioFrame音频裸数据。详见: AudioFrame
返回
  • true: AudioFrame 中 buffer 数据有效,数据会被发送;
  • false: AudioFrame 中 buffer 数据无效,数据会被舍弃。

◆ onMixedAudioFrame()

virtual bool agora::media::IAudioFrameObserver::onMixedAudioFrame ( AudioFrame audioFrame)
pure virtual

获取录制和播放语音混音后的数据。

注解
该方法仅返回单通道数据。
参数
audioFrame音频裸数据。详见: AudioFrame
返回
  • true: AudioFrame 中 buffer 数据有效,数据会被发送;
  • false: AudioFrame 中 buffer 数据无效,数据会被舍弃。

◆ onPlaybackAudioFrameBeforeMixing()

virtual bool agora::media::IAudioFrameObserver::onPlaybackAudioFrameBeforeMixing ( unsigned int  uid,
AudioFrame audioFrame 
)
pure virtual

获得混音前的指定用户的声音。

参数
uid指定用户的用户 ID。
audioFrame音频裸数据。详见: AudioFrame
返回
  • true: AudioFrame 中 buffer 数据有效,数据会被发送;
  • false: AudioFrame 中 buffer 数据无效,数据会被舍弃。

◆ isMultipleChannelFrameWanted()

virtual bool agora::media::IAudioFrameObserver::isMultipleChannelFrameWanted ( )
inlinevirtual

多频道场景下,设置是否获取多个频道的音频数据。

自从
v3.0.1

成功注册音频观测器后,SDK 会在捕捉到每个音频帧的时候触发该回调。

在多频道场景下,如果你希望从多个频道获取音频数据,则需要将该回调的返回值设为 true。 成功设置后,SDK 会触发 onPlaybackAudioFrameBeforeMixingEx 回调,向你发送接收的混音前的音频帧,并报告该音频帧来自哪个频道。

注解
  • 一旦你将该回调的返回值设为 true,则 SDK 只触发 onPlaybackAudioFrameBeforeMixingEx 来返回接收到的混音前的音频数据。 onPlaybackAudioFrameBeforeMixing 将不会被触发。在多频道场景下,我们建议你将该回调的返回值设为 true
  • 如果你将该回调的返回值设为 false,则 SDK 只触发 onPlaybackAudioFrameBeforeMixing 来返回接收到的音频数据。
返回
  • true: 获取多个频道的音频帧。
  • false: 不获取多个频道的音频帧。

◆ onPlaybackAudioFrameBeforeMixingEx()

virtual bool agora::media::IAudioFrameObserver::onPlaybackAudioFrameBeforeMixingEx ( const char *  channelId,
unsigned int  uid,
AudioFrame audioFrame 
)
inlinevirtual

获取各频道混音前的音频播放数据。

成功注册音频观测器后,如果你将 isMultipleChannelFrameWanted 的返回值设为 true,则 SDK 会在捕捉到各频道内混音前的音频数据时,触发该回调,将音频数据发送给你。

参数
channelId该音频帧所在的频道名
uid发送该音频帧的用户 ID
audioFrameAudioFrame
返回
  • true: AudioFrame 内的音频帧有效,发送该音频帧。
  • false: AudioFrame 内的音频帧无效,丢弃该音频帧。