IAudioFrameObserver
音频观测器。
你可以调用 registerAudioFrameObserver 注册或取消注册 IAudioFrameObserver 音频观测器。
onEarMonitoringAudioFrame
获得耳返的原始音频数据。
public abstract boolean onEarMonitoringAudioFrame(int type, int samplesPerChannel, int bytesPerSample, int channels, int samplesPerSec, ByteBuffer buffer, long renderTimeMs, int avsync_type);
- 你需要在加入频道前,调用 registerAudioFrameObserver 注册音频观测器对象,即注册 onEarMonitoringAudioFrame 回调。
- 为保证获得的耳返音频数据格式符合预期,声网推荐你在如下两种方式中选其一设置耳返音频数据格式:
- 调用 setEarMonitoringAudioFrameParameters 设置获取的耳返音频数据格式,SDK 会根据该方法中的参数计算采样间隔,并根据该采样间隔触发 onEarMonitoringAudioFrame 回调。
- 在 getEarMonitoringAudioParams 回调的返回值中设置获取的耳返音频数据格式,SDK 会根据该回调的返回值计算采样间隔,并根据该采样间隔触发 onEarMonitoringAudioFrame 回调。
参数
- 音频原始数据。详见 AudioFrame。
- type
- 音频数据的类型。
- samplesPerChannel
- 每声道的采样点数。
- bytesPerSample
- 每个采样点的字节数(byte)。对于 PCM 音频数据,一般是两个字节。
- channels
-
声道数:
- 1:单声道。
- 2:双声道。双声道的音频数据是交叉存储的。
- samplesPerSec
- 音频采样率(Hz)。
- buffer
- 音频 buffer。buffer 大小为 samplesPerChannel x channels x bytesPerSample。
- renderTimeMs
- 外部音频帧的渲染时间戳(毫秒)。你可以使用该时间戳还原音频帧的顺序。在音视频场景下(包含使用外部视频源的场景),该时间戳可以用于实现音频和视频的同步。
- avsync_type
- 预留参数。
返回值
无实际含义。
onMixedAudioFrame
获取采集和播放音频混音后的数据。
public abstract boolean onMixedAudioFrame(int type, int samplesPerChannel, int bytesPerSample, int channels, int samplesPerSec, ByteBuffer buffer, long renderTimeMs, int avsync_type);
- 你需要在加入频道前,调用 registerAudioFrameObserver 注册音频观测器对象,即注册 onMixedAudioFrame 回调。
- 该回调仅报告单通道数据。
- 为保证采集和播放音频混音后的数据格式符合预期,Agora 推荐你在如下两种方式中选其一设置采集和播放音频混音后的音频数据格式:
- 调用 setMixedAudioFrameParameters 设置音频数据格式,SDK 会根据该方法中的参数计算采样间隔,并根据该采样间隔触发 onMixedAudioFrame 回调。
- 在 getMixedAudioParams 回调的返回值中设置音频数据格式,SDK 会根据该回调的返回值计算采样间隔,并根据该采样间隔触发 onMixedAudioFrame 回调。
参数
- 音频原始数据。详见 AudioFrame。
- type
- 音频数据的类型。
- samplesPerChannel
- 每声道的采样点数。
- bytesPerSample
- 每个采样点的字节数(byte)。对于 PCM 音频数据,一般是两个字节。
- channels
-
声道数:
- 1:单声道。
- 2:双声道。双声道的音频数据是交叉存储的。
- samplesPerSec
- 音频采样率(Hz)。
- buffer
- 音频 buffer。buffer 大小为 samplesPerChannel x channels x bytesPerSample。
- renderTimeMs
- 外部音频帧的渲染时间戳(毫秒)。你可以使用该时间戳还原音频帧的顺序。在音视频场景下(包含使用外部视频源的场景),该时间戳可以用于实现音频和视频的同步。
- avsync_type
- 预留参数。
返回值
无实际含义。
onPlaybackAudioFrame
获得播放的原始音频数据。
public abstract boolean onPlaybackAudioFrame(int type, int samplesPerChannel, int bytesPerSample, int channels, int samplesPerSec, ByteBuffer buffer, long renderTimeMs, int avsync_type);
- 你需要在加入频道前,调用 registerAudioFrameObserver 注册音频观测器对象,即注册 onPlaybackAudioFrame 回调。
- 为保证播放的音频数据格式符合预期,Agora 推荐你在如下两种方式中选其一设置播放的音频数据格式:
- 调用 setPlaybackAudioFrameParameters 设置音频数据格式,SDK 会根据该方法中的参数计算采样间隔,并根据该采样间隔触发 onPlaybackAudioFrame 回调。
- 在 getPlaybackAudioParams 回调的返回值中设置音频数据格式,SDK 会根据该回调的返回值计算采样间隔,并根据该采样间隔触发 onPlaybackAudioFrame 回调。
参数
- 音频原始数据。详见 AudioFrame。
- type
- 音频数据的类型。
- samplesPerChannel
- 每声道的采样点数。
- bytesPerSample
- 每个采样点的字节数(byte)。对于 PCM 音频数据,一般是两个字节。
- channels
-
声道数:
- 1:单声道。
- 2:双声道。双声道的音频数据是交叉存储的。
- samplesPerSec
- 音频采样率(Hz)。
- buffer
- 音频 buffer。buffer 大小为 samplesPerChannel x channels x bytesPerSample。
- renderTimeMs
- 外部音频帧的渲染时间戳(毫秒)。你可以使用该时间戳还原音频帧的顺序。在音视频场景下(包含使用外部视频源的场景),该时间戳可以用于实现音频和视频的同步。
- avsync_type
- 预留参数。
返回值
无实际含义。
onPlaybackAudioFrameBeforeMixing
获得混音前的指定用户的声音。
public abstract boolean onPlaybackAudioFrameBeforeMixing(int userId, int type, int samplesPerChannel, int bytesPerSample, int channels, int samplesPerSec, ByteBuffer buffer, long renderTimeMs, int avsync_type);
参数
- userId
- 指定用户的用户 ID。
- type
- 音频数据的类型。
- samplesPerChannel
- 每声道的采样点数。
- bytesPerSample
- 每个采样点的字节数(byte)。对于 PCM 音频数据,一般是两个字节。
- channels
-
声道数:
- 1:单声道。
- 2:双声道。双声道的音频数据是交叉存储的。
- samplesPerSec
- 音频采样率(Hz)。
- buffer
- 音频 buffer。buffer 大小为 samplesPerChannel x channels x bytesPerSample。
- renderTimeMs
- 外部音频帧的渲染时间戳(毫秒)。你可以使用该时间戳还原音频帧的顺序。在音视频场景下(包含使用外部视频源的场景),该时间戳可以用于实现音频和视频的同步。
- avsync_type
- 预留参数。
返回值
无实际含义。
onRecordAudioFrame
获得采集的原始音频数据。
public abstract boolean onRecordAudioFrame(int type, int samplesPerChannel, int bytesPerSample, int channels, int samplesPerSec, ByteBuffer buffer, long renderTimeMs, int avsync_type);
- 你需要在加入频道前,调用 registerAudioFrameObserver 注册音频观测器对象,即注册 onRecordAudioFrame 回调。
- 为保证采集到的音频数据格式符合预期,Agora 推荐你在如下两种方式中选其一设置采集到的音频数据格式:
- 调用 setRecordingAudioFrameParameters 设置获取的耳返音频数据格式,SDK 会根据该方法中的参数计算采样间隔,并根据该采样间隔触发 onRecordAudioFrame 回调。
- 在 getRecordAudioParams 回调的返回值中设置获取的耳返音频数据格式,SDK 会根据该回调的返回值计算采样间隔,并根据该采样间隔触发 onRecordAudioFrame 回调。
参数
- 音频原始数据。详见 AudioFrame。
- type
- 音频数据的类型。
- samplesPerChannel
- 每声道的采样点数。
- bytesPerSample
- 每个采样点的字节数(byte)。对于 PCM 音频数据,一般是两个字节。
- channels
-
声道数:
- 1:单声道。
- 2:双声道。双声道的音频数据是交叉存储的。
- samplesPerSec
- 音频采样率(Hz)。
- buffer
- 音频 buffer。buffer 大小为 samplesPerChannel x channels x bytesPerSample。
- renderTimeMs
- 外部音频帧的渲染时间戳(毫秒)。你可以使用该时间戳还原音频帧的顺序。在音视频场景下(包含使用外部视频源的场景),该时间戳可以用于实现音频和视频的同步。
- avsync_type
- 预留参数。
返回值
无实际含义。
getRecordAudioParams
设置 onRecordAudioFrame 回调数据的格式。
public abstract AudioParams getRecordAudioParams();
你需要在调用 registerAudioFrameObserver 方法时注册该回调。成功注册音频数据观测器后,SDK 会触发该回调,你可以在该回调的返回值中设置 SDK 采集的音频数据格式。
SDK 会通过你在返回值中设置的 AudioParams 计算采样间隔触发 onRecordAudioFrame 回调。计算公式为采样间隔 = samplesPerCall/(sampleRate × channel)。
请确保采样间隔不小于 0.01 秒。
返回值
SDK 采集的音频数据,详见 AudioParams。
getMixedAudioParams
设置 onMixedAudioFrame 回调数据的格式。
public abstract AudioParams getMixedAudioParams();
你需要在调用 registerAudioFrameObserver 方法时注册该回调。成功注册音频数据观测器后,SDK 会触发该回调,你可以在该回调的返回值中设置 SDK 采集和播放音频混音后的数据格式。
SDK 会通过你在返回值中设置的 AudioParams 计算采样间隔触发 onMixedAudioFrame 回调。计算公式为采样间隔 = samplesPerCall/(sampleRate × channel)。
请确保采样间隔不小于 0.01 秒。
返回值
SDK 采集和播放音频混音后的音频数据,详见 AudioParams。
getPlaybackAudioParams
设置 onPlaybackAudioFrame 回调数据的格式。
public abstract AudioParams getMixedAudioParams();
你需要在调用 registerAudioFrameObserver 方法时注册该回调。成功注册音频数据观测器后,SDK 会触发该回调,你可以在该回调的返回值中设置 SDK 播放的音频数据格式。
SDK 会通过你在返回值中设置的 AudioParams 计算采样间隔触发 onPlaybackAudioFrame 回调。计算公式为采样间隔 = samplesPerCall/(sampleRate × channel)。
请确保采样间隔不小于 0.01 秒。
返回值
SDK 播放的音频数据,详见 AudioParams。
getEarMonitoringAudioParams
设置 onEarMonitoringAudioFrame 回调数据的格式。
public abstract AudioParams getEarMonitoringAudioParams();
- 自从
- v4.0.1
你需要在调用 registerAudioFrameObserver 方法时注册该回调。成功注册音频数据观测器后,SDK 会触发该回调,你可以在该回调的返回值中设置耳返的音频数据格式。
SDK 会通过你在返回值中设置的 AudioParams 计算采样间隔触发 onEarMonitoringAudioFrame 回调。计算公式为采样间隔 = samplesPerCall/(sampleRate × channel)。
请确保采样间隔不小于 0.01 秒。
返回值
耳返的音频数据,详见 AudioParams。