原始音频数据
getEarMonitoringAudioParams
onEarMonitoringAudioFrame 回调的音频格式设置回调。
virtual AudioParams getEarMonitoringAudioParams() = 0;
调用 registerAudioFrameObserver 注册音频帧观察者时,需要实现该回调。注册成功后,SDK 会触发该回调,你可以在返回值中设置音频格式。
返回值
方法调用成功时,返回一个 AudioParams 对象,表示耳返音频数据格式,详见 AudioParams。
所属接口类getMixedAudioParams
onMixedAudioFrame 回调的音频格式设置回调。
virtual AudioParams getMixedAudioParams() = 0;
调用 registerAudioFrameObserver 方法注册音频帧观察器时,你需要实现该回调。在成功注册音频帧观察器后,SDK 会触发该回调,你可以通过该回调的返回值设置音频格式。
samplePerCall /(sampleRate × channel)。请确保采样间隔 ≥ 0.01 秒。返回值
方法调用成功时,返回一个 AudioParams 实例,表示混合后的采集和播放音频数据,详见 AudioParams。
所属接口类getObservedAudioFramePosition
设置音频数据观察位置。
virtual int getObservedAudioFramePosition() = 0;
- onRecordAudioFrame
- onPlaybackAudioFrame
- onPlaybackAudioFrameBeforeMixing
- onMixedAudioFrame
- onEarMonitoringAudioFrame
返回值
AUDIO_FRAME_POSITION_PLAYBACK(0x0001):可观察所有远端用户混音后的播放音频。对应回调为 onPlaybackAudioFrame。AUDIO_FRAME_POSITION_RECORD(0x0002):可观察本地用户采集的音频。对应回调为 onRecordAudioFrame。AUDIO_FRAME_POSITION_MIXED(0x0004):可观察本地用户与所有远端用户混音后的播放音频。对应回调为 onMixedAudioFrame。AUDIO_FRAME_POSITION_BEFORE_MIXING(0x0008):可观察单个远端用户混音前的音频。对应回调为 onPlaybackAudioFrameBeforeMixing。AUDIO_FRAME_POSITION_EAR_MONITORING(0x0010):可观察本地用户的耳返音频。对应回调为 onEarMonitoringAudioFrame。
getPlaybackAudioParams
设置 onPlaybackAudioFrame 回调的音频格式。
virtual AudioParams getPlaybackAudioParams() = 0;
你需要在调用 registerAudioFrameObserver 方法时注册回调。注册成功后,SDK 会触发该回调,你可以在该回调的返回值中设置音频格式。
samplePerCall /(sampleRate × channel)。请确保采样间隔 ≥ 0.01 秒。返回值
方法调用成功时,返回一个用于播放的音频参数,详见 AudioParams。
所属接口类getRecordAudioParams
onRecordAudioFrame 回调的音频格式设置回调。
virtual AudioParams getRecordAudioParams() = 0;
调用 registerAudioFrameObserver 注册音频帧观察者后,SDK 会触发该回调。你可以在该回调的返回值中设置音频格式。
samplePerCall /(sampleRate × channel)。请确保采样间隔 ≥ 0.01 秒。返回值
方法调用成功时,返回一个 AudioParams 实例,详见 AudioParams。
所属接口类registerAudioFrameObserver
注册音频帧观测器对象。
virtual int registerAudioFrameObserver(IAudioFrameObserver* observer) = 0;
调用该方法可注册音频帧观测器对象。当你需要 SDK 触发 onMixedAudioFrame、onRecordAudioFrame、onPlaybackAudioFrame、onPlaybackAudioFrameBeforeMixing 或 onEarMonitoringAudioFrame 回调时,需调用该方法进行注册。
调用时机
在加入频道前调用该方法。
参数
- observer
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
setEarMonitoringAudioFrameParameters
设置耳返音频数据的格式。
virtual int setEarMonitoringAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall) = 0;
该方法用于设置 onEarMonitoringAudioFrame 回调中报告的耳返音频数据格式。
- 在调用该方法前,需先调用 enableInEarMonitoring,并将
includeAudioFilters设置为EAR_MONITORING_FILTER_BUILT_IN_AUDIO_FILTERS或EAR_MONITORING_FILTER_NOISE_SUPPRESSION。 - SDK 会根据该方法中设置的
samplesPerCall、sampleRate和channel参数计算采样间隔。采样间隔(秒)=samplesPerCall/(sampleRate×channel)。请确保采样间隔 ≥ 0.01 秒。SDK 会根据采样间隔触发 onEarMonitoringAudioFrame 回调。
参数
- sampleRate
- onEarMonitoringAudioFrame 回调中报告的音频采样率。可设置为 8000、16000、32000、44100 或 48000 Hz。
- channel
- onEarMonitoringAudioFrame 回调中报告的音频通道数。
- 1:单声道。
- 2:立体声。
- mode
- 音频帧的使用模式,详见 RAW_AUDIO_FRAME_OP_MODE_TYPE。
- samplesPerCall
- onEarMonitoringAudioFrame 回调中每次报告的采样点数量,例如媒体推流时为 1024。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
setMixedAudioFrameParameters
设置混音后用于音频采集和播放的原始音频数据格式。
virtual int setMixedAudioFrameParameters(int sampleRate, int channel, int samplesPerCall) = 0;
setMixedAudioFrameParameters 会根据设置的 samplesPerCall、sampleRate 和 channel 参数计算采样间隔。采样间隔(秒) = samplesPerCall /(sampleRate × channel)。请确保采样间隔 ≥ 0.01 秒。SDK 会根据采样间隔触发 onMixedAudioFrame 回调。
调用时机
请在加入频道前调用该方法。
参数
- sampleRate
- 回调中返回的采样率,可设置为 8000、16000、32000、44100 或 48000 Hz。
- channel
- 音频声道数,可设置为:
- 1:单声道。
- 2:立体声。
- samplesPerCall
- 每次调用的数据采样数,例如媒体推流时为 1024。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
setPlaybackAudioFrameBeforeMixingParameters [1/2]
设置混音前的原始音频播放数据格式。
virtual int setPlaybackAudioFrameBeforeMixingParameters(int sampleRate, int channel) = 0;
SDK 会根据采样间隔触发 onPlaybackAudioFrameBeforeMixing 回调。请在加入频道前调用该方法。
调用时机
请在加入频道前调用此方法。
参数
- sampleRate
- 回调中返回的采样率。可设置为 8000、16000、32000、44100 或 48000 Hz。
- channel
- 音频声道数,可设置为:
- 1:单声道。
- 2:立体声。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
setPlaybackAudioFrameBeforeMixingParameters [2/2]
设置 onPlaybackAudioFrameBeforeMixing 回调中返回音频数据的格式。
virtual int setPlaybackAudioFrameBeforeMixingParameters(int sampleRate, int channel, int samplesPerCall) = 0;
设置 onPlaybackAudioFrameBeforeMixing 回调中返回音频数据的采样率、声道数和每次回调的采样点数。
调用时机
请在加入频道前调用此方法。
参数
- sampleRate
- 设置 onPlaybackAudioFrameBeforeMixing 回调中返回音频数据的采样率。可设置为以下值:8000、16000、32000、44100 或 48000。
- channel
- 设置 onPlaybackAudioFrameBeforeMixing 回调中返回音频数据的声道数。
- 1:单声道。
- 2:立体声。
- samplesPerCall
- 设置 onPlaybackAudioFrameBeforeMixing 回调中返回音频数据的采样点数。在 RTMP 推流场景中,建议设置为 1024。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
setPlaybackAudioFrameParameters
设置原始音频播放数据的格式。
virtual int setPlaybackAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall) = 0;
SDK 会根据该方法中设置的 samplesPerCall、sampleRate 和 channel 参数计算采样间隔:采样间隔(秒) = samplesPerCall / (sampleRate × channel)。请确保采样间隔 ≥ 0.01 秒。SDK 会根据采样间隔触发 onPlaybackAudioFrame 回调。
调用时机
请在加入频道前调用该方法。
参数
- sampleRate
- 回调中返回的采样率。可设置为 8000、16000、32000、44100 或 48000 Hz。
- channel
- 音频声道数。可设置为:
- 1:单声道。
- 2:立体声。
- mode
- 音频帧的使用模式,详见 RAW_AUDIO_FRAME_OP_MODE_TYPE。
- samplesPerCall
- 每次调用返回的数据采样数,例如媒体推流时为 1024。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
setRecordingAudioFrameParameters
设置采集的原始音频数据格式。
virtual int setRecordingAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall) = 0;
setRecordingAudioFrameParameters 会根据 samplesPerCall、sampleRate 和 channel 参数计算采样间隔。采样间隔(单位:秒) = samplesPerCall /(sampleRate × channel)。请确保采样间隔 ≥ 0.01 秒。SDK 会根据采样间隔触发 onRecordAudioFrame 回调。
调用时机
请在加入频道前调用该方法。
参数
- sampleRate
- 回调中返回的采样率。可设置为 8000、16000、32000、44100 或 48000(Hz)。
- channel
- 音频声道数。可设置为:
- 1:单声道。
- 2:立体声。
- mode
- 音频帧的使用模式,详见 RAW_AUDIO_FRAME_OP_MODE_TYPE。
- samplesPerCall
- 每次回调的数据采样数,例如媒体推流时为 1024。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
onEarMonitoringAudioFrame
耳返音频帧回调。
virtual bool onEarMonitoringAudioFrame(AudioFrame& audioFrame) = 0;
- 方法一:调用 setEarMonitoringAudioFrameParameters 设置音频数据格式,并调用 registerAudioFrameObserver 注册音频帧观察者对象。SDK 会根据设置的参数计算采样间隔,并按照该间隔触发该回调。
- 方法二:调用 registerAudioFrameObserver 注册音频帧观察者对象,在 getObservedAudioFramePosition 回调的返回值中设置音频数据格式。SDK 会根据 getEarMonitoringAudioParams 回调的返回值计算采样间隔,并按照该间隔触发该回调。
参数
- audioFrame
- 原始音频数据。详见 AudioFrame。
返回值
- true:回调处理成功。
- false:回调处理失败。
onMixedAudioFrame
混合采集和播放音频帧的回调。
virtual bool onMixedAudioFrame(const char* channelId, AudioFrame& audioFrame) = 0;
- 方法一:调用 setMixedAudioFrameParameters 设置音频数据格式,并调用 registerAudioFrameObserver 注册音频帧观察者对象。SDK 会根据设置的参数计算采样间隔,并按该间隔触发该回调。
- 方法二:调用 registerAudioFrameObserver 注册音频帧观察者对象后,在 getObservedAudioFramePosition 回调的返回值中设置音频数据格式。SDK 会根据 getMixedAudioParams 回调的返回值计算采样间隔,并按该间隔触发该回调。
参数
- channelId
- 频道 ID。
- audioFrame
- 输出参数,原始音频数据。详见 AudioFrame。
返回值
- true:回调处理成功。
- false:回调处理失败。
onPlaybackAudioFrame
onPlaybackAudioFrame 回调:获取用于播放的原始音频帧。
virtual bool onPlaybackAudioFrame(const char* channelId, AudioFrame& audioFrame) = 0;
- 方法一:调用 setPlaybackAudioFrameParameters 设置音频数据格式,并调用 registerAudioFrameObserver 注册音频帧观察者对象。SDK 会根据设置的参数计算采样间隔,并按该间隔触发该回调。
- 方法二:调用 registerAudioFrameObserver 注册音频帧观察者对象后,在 getObservedAudioFramePosition 回调的返回值中设置音频数据格式。SDK 会根据 getPlaybackAudioParams 回调的返回值计算采样间隔,并按该间隔触发该回调。
参数
- channelId
- 频道 ID。
- audioFrame
- 输出参数,原始音频数据,详见 AudioFrame。
返回值
- true:回调处理成功。
- false:回调处理失败。
onPlaybackAudioFrameBeforeMixing
获取订阅远端用户混音前的音频帧回调。
virtual bool onPlaybackAudioFrameBeforeMixing(const char* channelId, base::user_id_t userId, AudioFrame& audioFrame)
参数
- channelId
- 频道 ID。
- userId
- 订阅远端用户的用户 ID。
- audioFrame
- 输出参数,原始音频数据。详见 AudioFrame。
返回值
- true:回调处理成功。
- false:回调处理失败。
onRecordAudioFrame
采集到音频帧时触发的回调。
virtual bool onRecordAudioFrame(const char* channelId, AudioFrame& audioFrame) = 0;
- 方法一:调用 setRecordingAudioFrameParameters 设置音频数据格式,并调用 registerAudioFrameObserver 注册音频帧观察者对象后,SDK 会根据设置的参数计算采样间隔,并按该间隔触发该回调。
- 方法二:调用 registerAudioFrameObserver 注册音频帧观察者对象后,在 getObservedAudioFramePosition 的返回值中设置音频数据格式。然后 SDK 会根据 getRecordAudioParams 的返回值计算采样间隔,并按该间隔触发该回调。
触发时机
SDK 根据采样间隔触发该回调。
参数
- channelId
- 频道 ID。
- audioFrame
- 输出参数,原始音频数据。详见 AudioFrame。
返回值
- true:回调处理成功。
- false:回调处理失败。