IAudioFrameObserverBase
音频观测器。
你可以调用 registerAudioFrameObserver 注册或取消注册 IAudioFrameObserverBase 音频观测器。
AUDIO_FRAME_TYPE
音频帧类型。
枚举值
- FRAME_TYPE_PCM16
- 0: PCM 16
AudioFrame
原始音频数据。
struct AudioFrame { AUDIO_FRAME_TYPE type; int samplesPerChannel; agora::rtc::BYTES_PER_SAMPLE bytesPerSample; int channels; int samplesPerSec; void* buffer; int64_t renderTimeMs; int avsync_type; AudioFrame() : type(FRAME_TYPE_PCM16), samplesPerChannel(0), bytesPerSample(rtc::TWO_BYTES_PER_SAMPLE), channels(0), samplesPerSec(0), buffer(NULL), renderTimeMs(0), avsync_type(0) {} };
属性
- type
-
音频帧类型,详见 AUDIO_FRAME_TYPE。
- samplesPerChannel
- 每个声道的采样点数。
- bytesPerSample
- 每个采样点的字节数: 对于 PCM 来说,一般使用 16 bit,即两个字节。
- channels
-
声道数量(如果是立体声,数据是交叉的)。
- 1: 单声道
- 2: 双声道
- samplesPerSec
- 每声道每秒的采样点数。
- buffer
-
声音数据缓存区(如果是立体声,数据是交叉存储的)。
缓存区数据大小
buffer
=samples
×channels
×bytesPerSample
。 - renderTimeMs
-
外部音频帧的渲染时间戳。
你可以使用该时间戳还原音频帧顺序;在有视频的场景中(包含使用外部视频源的场景),该参数可以用于实现音视频同步。
- avsync_type
- 保留参数。
onEarMonitoringAudioFrame
获得耳返的原始音频数据。
virtual bool onEarMonitoringAudioFrame(AudioFrame& audioFrame) = 0;
- 你需要在加入频道前,调用 registerAudioFrameObserver 注册音频观测器对象,即注册 onEarMonitoringAudioFrame 回调。
- 为保证获得的耳返音频数据格式符合预期,声网推荐你在如下两种方式中选其一设置耳返音频数据格式:
- 调用 setEarMonitoringAudioFrameParameters 设置获取的耳返音频数据格式,SDK 会根据该方法中的参数计算采样间隔,并根据该采样间隔触发 onEarMonitoringAudioFrame 回调。
- 在 getEarMonitoringAudioParams 回调的返回值中设置获取的耳返音频数据格式,SDK 会根据该回调的返回值计算采样间隔,并根据该采样间隔触发 onEarMonitoringAudioFrame 回调。
参数
- audioFrame
- 音频原始数据。详见 AudioFrame。
返回值
无实际含义。
onMixedAudioFrame
获取采集和播放音频混音后的数据。
virtual bool onMixedAudioFrame(AudioFrame& audioFrame) = 0;
- 你需要在加入频道前,调用 registerAudioFrameObserver 注册音频观测器对象,即注册 onMixedAudioFrame 回调。
- 该回调仅报告单通道数据。
- 为保证采集和播放音频混音后的数据格式符合预期,Agora 推荐你在如下两种方式中选其一设置采集和播放音频混音后的音频数据格式:
- 调用 setMixedAudioFrameParameters 设置音频数据格式,SDK 会根据该方法中的参数计算采样间隔,并根据该采样间隔触发 onMixedAudioFrame 回调。
- 在 getMixedAudioParams 回调的返回值中设置音频数据格式,SDK 会根据该回调的返回值计算采样间隔,并根据该采样间隔触发 onMixedAudioFrame 回调。
参数
- audioFrame
- 音频原始数据。详见 AudioFrame。
返回值
无实际含义。
onPlaybackAudioFrame
获得播放的原始音频数据。
virtual bool onPlaybackAudioFrame(AudioFrame& audioFrame) = 0;
- 你需要在加入频道前,调用 registerAudioFrameObserver 注册音频观测器对象,即注册 onPlaybackAudioFrame 回调。
- 为保证播放的音频数据格式符合预期,Agora 推荐你在如下两种方式中选其一设置播放的音频数据格式:
- 调用 setPlaybackAudioFrameParameters 设置音频数据格式,SDK 会根据该方法中的参数计算采样间隔,并根据该采样间隔触发 onPlaybackAudioFrame 回调。
- 在 getPlaybackAudioParams 回调的返回值中设置音频数据格式,SDK 会根据该回调的返回值计算采样间隔,并根据该采样间隔触发 onPlaybackAudioFrame 回调。
参数
- audioFrame
- 音频原始数据。详见 AudioFrame。
返回值
无实际含义。
onRecordAudioFrame
获得采集的原始音频数据。
virtual bool onRecordAudioFrame(AudioFrame& audioFrame) = 0;
- 你需要在加入频道前,调用 registerAudioFrameObserver 注册音频观测器对象,即注册 onRecordAudioFrame 回调。
- 为保证采集到的音频数据格式符合预期,Agora 推荐你在如下两种方式中选其一设置采集到的音频数据格式:
- 调用 setRecordingAudioFrameParameters 设置获取的耳返音频数据格式,SDK 会根据该方法中的参数计算采样间隔,并根据该采样间隔触发 onRecordAudioFrame 回调。
- 在 getRecordAudioParams 回调的返回值中设置获取的耳返音频数据格式,SDK 会根据该回调的返回值计算采样间隔,并根据该采样间隔触发 onRecordAudioFrame 回调。
参数
- audioFrame
- 音频原始数据。详见 AudioFrame。
返回值
无实际含义。
getRecordAudioParams
设置 onRecordAudioFrame 回调数据的格式。
virtual AudioParams getRecordAudioParams() = 0;
你需要在调用 registerAudioFrameObserver 方法时注册该回调。成功注册音频数据观测器后,SDK 会触发该回调,你可以在该回调的返回值中设置 SDK 采集的音频数据格式。
SDK 会通过你在返回值中设置的 AudioParams 计算采样间隔触发 onRecordAudioFrame 回调。计算公式为采样间隔 = samplesPerCall/(sampleRate × channel)。
请确保采样间隔不小于 0.01 秒。
返回值
SDK 采集的音频数据,详见 AudioParams。
getMixedAudioParams
设置 onMixedAudioFrame 回调数据的格式。
virtual AudioParams getMixedAudioParams() = 0;
你需要在调用 registerAudioFrameObserver 方法时注册该回调。成功注册音频数据观测器后,SDK 会触发该回调,你可以在该回调的返回值中设置 SDK 采集和播放音频混音后的数据格式。
SDK 会通过你在返回值中设置的 AudioParams 计算采样间隔触发 onMixedAudioFrame 回调。计算公式为采样间隔 = samplesPerCall/(sampleRate × channel)。
请确保采样间隔不小于 0.01 秒。
返回值
SDK 采集和播放音频混音后的音频数据,详见 AudioParams。
getPlaybackAudioParams
设置 onPlaybackAudioFrame 回调数据的格式。
virtual AudioParams getPlaybackAudioParams() = 0;
你需要在调用 registerAudioFrameObserver 方法时注册该回调。成功注册音频数据观测器后,SDK 会触发该回调,你可以在该回调的返回值中设置 SDK 播放的音频数据格式。
SDK 会通过你在返回值中设置的 AudioParams 计算采样间隔触发 onPlaybackAudioFrame 回调。计算公式为采样间隔 = samplesPerCall/(sampleRate × channel)。
请确保采样间隔不小于 0.01 秒。
返回值
SDK 播放的音频数据,详见 AudioParams。
getEarMonitoringAudioParams
设置 onEarMonitoringAudioFrame 回调数据的格式。
virtual AudioParams getEarMonitoringAudioParams() = 0;
- 自从
- v4.0.1
你需要在调用 registerAudioFrameObserver 方法时注册该回调。成功注册音频数据观测器后,SDK 会触发该回调,你可以在该回调的返回值中设置耳返的音频数据格式。
SDK 会通过你在返回值中设置的 AudioParams 计算采样间隔触发 onEarMonitoringAudioFrame 回调。计算公式为采样间隔 = samplesPerCall/(sampleRate × channel)。
请确保采样间隔不小于 0.01 秒。
返回值
耳返的音频数据,详见 AudioParams。