原始音频数据

  • Unreal C++

更新时间不可用

registerAudioFrameObserver

注册音频观测器对象。

C++
virtual int registerAudioFrameObserver(IAudioFrameObserver* observer) = 0;

该方法用于注册音频观测器对象,即注册回调。当需要 SDK 触发 onMixedAudioFrame、onRecordAudioFrame、onPlaybackAudioFrame、onPlaybackAudioFrameBeforeMixing 和 onEarMonitoringAudioFrame 回调时,需要调用该方法注册回调。

调用时机

该方法需要在加入频道前调用。

调用限制

无。

参数

参数名描述
observer

接口对象实例。详见 IAudioFrameObserver。如果传入 NULL,则表示取消注册。建议在收到 onLeaveChannel 后调用,来释放音频观测器对象。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

setEarMonitoringAudioFrameParameters

设置耳返的音频数据格式。

C++
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 中报告音频的采样率 (Hz),可设置为 8000、 16000、 32000、44100 或 48000。

channel

onEarMonitoringAudioFrame 中报告音频的声道数,可设置为 1 或 2:

  • 1: 单声道。
  • 2: 双声道。
mode

音频帧的使用模式,详见 RAW_AUDIO_FRAME_OP_MODE_TYPE。

samplesPerCall

onEarMonitoringAudioFrame 中报告的音频的采样点数,如旁路推流应用中通常为 1024。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

setMixedAudioFrameParameters

设置采集和播放音频混音后的原始音频数据格式。

C++
virtual int setMixedAudioFrameParameters(int sampleRate, int channel, int samplesPerCall) = 0;

SDK 会通过该方法中的 samplesPerCall、sampleRate 和 channel 参数计算出采样间隔,计算公式为采样间隔 = samplesPerCall/(sampleRate × channel)。请确保采样间隔不小于 0.01 秒。SDK 会根据该采样间隔触发 onMixedAudioFrame 回调。

调用时机

该方法需要在加入频道前调用。

调用限制

无。

参数

参数名描述
sampleRate

音频数据的采样率 (Hz),可设置为 8000、 16000、 32000、44100 或 48000。

channel

音频数据的声道数,可设置为 1 或 2:

  • 1: 单声道。
  • 2: 双声道。
samplesPerCall

音频数据的采样点数,如旁路推流应用中通常为 1024。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。详见错误码了解详情和解决建议。

所属接口类

setPlaybackAudioFrameBeforeMixingParameters

设置混音前的原始音频播放数据格式。

C++
virtual int setPlaybackAudioFrameBeforeMixingParameters(int sampleRate, int channel) = 0;

SDK 会根据该采样间隔触发 onPlaybackAudioFrameBeforeMixing 回调。

调用时机

该方法需要在加入频道前调用。

调用限制

无。

参数

参数名描述
sampleRate

音频数据的采样率 (Hz),可设置为 8000、 16000、 32000、44100 或 48000。

channel

音频数据的声道数,可设置为 1 或 2:

  • 1: 单声道。
  • 2: 双声道。
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。详见错误码了解详情和解决建议。

所属接口类

setPlaybackAudioFrameParameters

设置播放的原始音频数据格式。

C++
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

音频数据的采样率 (Hz),可设置为 8000、 16000、 32000、44100 或 48000。

channel

音频数据的声道数,可设置为 1 或 2:

  • 1: 单声道。
  • 2: 双声道。
mode

音频帧的使用模式,详见 RAW_AUDIO_FRAME_OP_MODE_TYPE。

samplesPerCall

音频数据的采样点数,如旁路推流应用中通常为 1024。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

setRecordingAudioFrameParameters

设置采集的原始音频数据格式。

C++
virtual int setRecordingAudioFrameParameters(int sampleRate,
    int channel,
    RAW_AUDIO_FRAME_OP_MODE_TYPE mode,
    int samplesPerCall) = 0;

SDK 会通过该方法中的 samplesPerCall、sampleRate 和 channel 参数计算出采样间隔,计算公式为采样间隔 = samplesPerCall/(sampleRate × channel)。请确保采样间隔不小于 0.01 秒。SDK 会根据该采样间隔触发 onRecordAudioFrame 回调。

调用时机

该方法需要在加入频道前调用。

调用限制

无。

参数

参数名描述
sampleRate

音频数据的采样率 (Hz),可设置为 8000、 16000、 32000、44100 或 48000。

channel

音频数据的声道数,可设置为 1 或 2:

  • 1: 单声道。
  • 2: 双声道。
mode

音频帧的使用模式,详见 RAW_AUDIO_FRAME_OP_MODE_TYPE。

samplesPerCall

音频数据的采样点数,如旁路推流应用中通常为 1024。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

getEarMonitoringAudioParams

设置 onEarMonitoringAudioFrame 回调数据的格式。

C++
virtual AudioParams getEarMonitoringAudioParams() = 0;

详情

自从

v4.0.1

你需要在调用 registerAudioFrameObserver 方法时注册该回调。成功注册音频数据观测器后,SDK 会触发该回调,你可以在该回调的返回值中设置耳返的音频数据格式。

注意:

SDK 会通过你在返回值中设置的 AudioParams 计算采样间隔触发 onEarMonitoringAudioFrame 回调。计算公式为采样间隔 = samplesPerCall/(sampleRate × channel)。

请确保采样间隔不小于 0.01 秒。

返回值

耳返的音频数据,详见 AudioParams。

所属接口类

getMixedAudioParams

设置 onMixedAudioFrame 回调数据的格式。

C++
virtual AudioParams getMixedAudioParams() = 0;

详情

你需要在调用 registerAudioFrameObserver 方法时注册该回调。成功注册音频数据观测器后,SDK 会触发该回调,你可以在该回调的返回值中设置 SDK 采集和播放音频混音后的数据格式。

注意:

SDK 会通过你在返回值中设置的 AudioParams 计算采样间隔触发 onMixedAudioFrame 回调。计算公式为采样间隔 = samplesPerCall/(sampleRate × channel)。

请确保采样间隔不小于 0.01 秒。

返回值

SDK 采集和播放音频混音后的音频数据,详见 AudioParams。

所属接口类

getObservedAudioFramePosition

设置音频观测位置。

C++
virtual int getObservedAudioFramePosition() = 0;

详情

成功注册音频数据观测器后,SDK 会在每个特定的音频帧处理节点通过该回调来判断是否触发如下回调:

你可以根据场景需求,通过修改 getObservedAudioFramePosition 的返回值,设置你需要观测的某个或多个位置。

注解观测多个位置时,需要使用 |(或运算符)。为降低设备耗能,你可以根据实际需求适当减少观测位置。

返回值

返回设置观测位置的位掩码,取值如下:

  • 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 回调数据的格式。

C++
virtual AudioParams getPlaybackAudioParams() = 0;

详情

你需要在调用 registerAudioFrameObserver 方法时注册该回调。成功注册音频数据观测器后,SDK 会触发该回调,你可以在该回调的返回值中设置 SDK 播放的音频数据格式。

注意:

SDK 会通过你在返回值中设置的 AudioParams 计算采样间隔触发 onPlaybackAudioFrame 回调。计算公式为采样间隔 = samplesPerCall/(sampleRate × channel)。

请确保采样间隔不小于 0.01 秒。

返回值

SDK 播放的音频数据,详见 AudioParams。

所属接口类

getRecordAudioParams

设置 onRecordAudioFrame 回调数据的格式。

C++
virtual AudioParams getRecordAudioParams() = 0;

详情

你需要在调用 registerAudioFrameObserver 方法时注册该回调。成功注册音频数据观测器后,SDK 会触发该回调,你可以在该回调的返回值中设置 SDK 采集的音频数据格式。

注意:

SDK 会通过你在返回值中设置的 AudioParams 计算采样间隔触发 onRecordAudioFrame 回调。计算公式为采样间隔 = samplesPerCall/(sampleRate × channel)。

请确保采样间隔不小于 0.01 秒。

返回值

SDK 采集的音频数据,详见 AudioParams。

所属接口类

onEarMonitoringAudioFrame

获得耳返的原始音频数据。

C++
virtual bool onEarMonitoringAudioFrame(AudioFrame& audioFrame) = 0;

详情

为保证耳返的音频数据格式符合预期,你可以在如下两种方法中任选一种,设置耳返音频数据格式:

注:

  • 方法一的优先级高于方法二,如果已使用方法一设置了音频数据格式,则使用方法二的设置不生效。

参数

参数名描述
audioFrame

音频原始数据。详见 AudioFrame。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

无实际含义。

所属接口类

onPlaybackAudioFrame

获得播放的原始音频数据。

C++
virtual bool onPlaybackAudioFrame(const char* channelId, AudioFrame& audioFrame) = 0;

详情

为保证播放的音频数据格式符合预期,你可以在如下两种方法中任选一种,设置音频的数据格式:

注:

  • 方法一的优先级高于方法二,如果使用方法一设置音频数据格式,方法二设置无效。

参数

参数名描述
audioFrame

音频原始数据。详见 AudioFrame。

channelId

频道 ID。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

无实际含义。

所属接口类

onPlaybackAudioFrameBeforeMixing

获取所订阅的远端用户混音前的声音。

C++
virtual bool onPlaybackAudioFrameBeforeMixing(const char* channelId, rtc::uid_t uid, AudioFrame& audioFrame) = 0;

参数

参数名描述
channelId

频道 ID。

uid

订阅的远端用户的 ID。

audioFrame

音频原始数据。详见 AudioFrame。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

无实际含义。

onRecordAudioFrame

获得采集的原始音频数据。

C++
virtual bool onRecordAudioFrame(const char* channelId, AudioFrame& audioFrame) = 0;

详情

为保证采集的音频数据格式符合预期,你可以在如下两种方法中任选一种,设置音频的数据格式:

注:

  • 方法一的优先级高于方法二,如果使用方法一设置音频数据格式,方法二设置无效。

参数

参数名描述
audioFrame

音频原始数据。详见 AudioFrame。

channelId

频道 ID。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

无实际含义。

所属接口类

onMixedAudioFrame

获取采集和播放音频混音后的数据。

C++
virtual bool onMixedAudioFrame(const char* channelId, AudioFrame& audioFrame) = 0;

详情

为保证采集和播放混音后的音频数据格式符合预期,你可以在如下两种方法中任选一种,设置音频的数据格式:

注:

  • 方法一的优先级高于方法二,如果使用方法一设置音频数据格式,方法二设置无效。

参数

参数名描述
audioFrame

音频原始数据。详见 AudioFrame。

channelId

频道 ID。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

无实际含义。

所属接口类