原始音频数据
RegisterAudioFrameObserver
注册音频观测器对象。
C#
public abstract int RegisterAudioFrameObserver(IAudioFrameObserver audioFrameObserver, AUDIO_FRAME_POSITION position, OBSERVER_MODE mode = OBSERVER_MODE.INTPTR);
详情
该方法用于注册音频观测器对象,即注册回调。当需要 SDK 给出 OnMixedAudioFrame、OnRecordAudioFrame、OnPlaybackAudioFrame 或 OnEarMonitoringAudioFrame 等回调时,需要使用该方法注册回调。
注意
该方法需要在加入频道前调用。
参数
- audioFrameObserver
接口对象实例。详见 IAudioFrameObserver。如果传入 NULL,则表示取消注册。建议在收到 OnLeaveChannel 后调用,来释放音频观测器对象。
- mode
- 音频数据回调模式,详见 OBSERVER_MODE。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
SetMixedAudioFrameParameters
设置 OnMixedAudioFrame
报告的音频数据格式。
C#
public abstract int SetMixedAudioFrameParameters(int sampleRate, int channel, int samplesPerCall);
参数
- sampleRate
音频数据采样率 (Hz),可设置为
8000
、16000
、32000
、44100
或48000
。- channel
音频数据声道数,可设置为
1
(单声道) 或2
(双声道)。- samplesPerCall
音频数据采样点数。旁路推流场景下通常设为
1024
。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
SetPlaybackAudioFrameBeforeMixingParameters
设置 OnPlaybackAudioFrameBeforeMixing
报告的音频数据格式。
C#
public abstract int SetPlaybackAudioFrameBeforeMixingParameters(int sampleRate, int channel);
参数
- sampleRate
音频数据采样率 (Hz),可设置为
8000
、16000
、32000
、44100
或48000
。- channel
音频数据声道数,可设置为
1
(单声道)或2
(双声道)。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
SetPlaybackAudioFrameParameters
设置播放的音频格式。
C#
public abstract int SetPlaybackAudioFrameParameters(int sampleRate, int channel,
RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall);
详情
该方法设置 OnPlaybackAudioFrame 回调数据的格式。
注意
- 该方法需要在加入频道前调用。
- SDK 会通过该方法中的 samplesPerCall、sampleRate 和 channel 参数计算出采样间隔,计算公式为采样间隔 = samplesPerCall/(sampleRate × channel)。请确保采样间隔不小于 0.01 秒。SDK 会根据该采样间隔触发 OnPlaybackAudioFrame 回调。
参数
- sampleRate
- OnPlaybackAudioFrame 中返回数据的采样率,可设置为 8000、 16000、 32000、44100 或 48000。
- channel
- OnPlaybackAudioFrame 中返回数据的通道数,可设置为 1 或 2:
- 1: 单声道
- 2: 双声道
- mode
音频帧的使用模式,详见 RAW_AUDIO_FRAME_OP_MODE_TYPE。
- samplesPerCall
- OnPlaybackAudioFrame 中返回数据的采样点数,如旁路推流应用中通常为 1024。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
SetRecordingAudioFrameParameters
设置采集的原始音频数据格式。
C#
public abstract int SetRecordingAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall);
详情
该方法设置 OnRecordAudioFrame 回调的采集音频格式。
注意
- 该方法需要在加入频道前调用。
- SDK 会通过该方法中的 samplesPerCall、sampleRate 和 channel 参数计算出采样间隔,计算公式为采样间隔 = samplesPerCall/(sampleRate × channel)。请确保采样间隔不小于 0.01 秒。SDK 会根据该采样间隔触发 OnRecordAudioFrame 回调。
参数
- sampleRate
- OnRecordAudioFrame 中返回数据的采样率,可设置为 8000、 16000、 32000、44100 或 48000。
- channel
- OnRecordAudioFrame 中返回数据的通道数,可设置为 1 或 2:
- 1: 单声道。
- 2: 双声道。
- mode
音频帧的使用模式,详见 RAW_AUDIO_FRAME_OP_MODE_TYPE。
- samplesPerCall
- OnRecordAudioFrame 中返回数据的采样点数,如旁路推流应用中通常为 1024。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
UnRegisterAudioFrameObserver
OnPlaybackAudioFrameBeforeMixing
获得混音前的指定用户的声音。
C#
public virtual bool OnPlaybackAudioFrameBeforeMixing(string channel_id,
uint uid,
AudioFrame audio_frame)
{
return false;
}
参数
- channel_id
- 频道 ID。
- uid
- 指定用户的用户 ID。
- audio_frame
- 音频原始数据。详见 AudioFrame。
返回值
无实际含义。
所属接口类OnPlaybackAudioFrame
获得播放的原始音频数据。
C#
public virtual bool OnPlaybackAudioFrame(string channelId, AudioFrame audio_frame)
{
return true;
}
详情
为保证播放的音频数据格式符合预期,你可以在如下两种方法中任选一种,设置音频的数据格式:
- 方法一:调用 SetPlaybackAudioFrameParameters 设置音频数据格式后,调用 RegisterAudioFrameObserver 注册音频观测器对象,SDK 会根据该方法中的参数计算采样间隔,并根据该采样间隔触发 OnPlaybackAudioFrame 回调。
- 方法二:调用 RegisterAudioFrameObserver 注册音频观测器对象后,在 回调的返回值中设置具体的音频观测位置,然后在 回调的返回值中设置音频数据格式,SDK 会根据该回调的返回值计算采样间隔,并根据该采样间隔触发 OnPlaybackAudioFrame 回调。
信息
- 方法一的优先级高于方法二,如果使用方法一设置音频数据格式,方法二设置无效。
参数
- audio_frame
- 音频原始数据。详见 AudioFrame。
- channelId
- 频道 ID。
返回值
无实际含义。
OnRecordAudioFrame
获得采集的原始音频数据。
C#
public virtual bool OnRecordAudioFrame(string channelId, AudioFrame audioFrame)
{
return true;
}
详情
为保证采集的音频数据格式符合预期,你可以在如下两种方法中任选一种,设置音频的数据格式:
- 方法一:调用 SetRecordingAudioFrameParameters 设置音频数据格式后,调用 RegisterAudioFrameObserver 注册音频观测器对象,SDK 会根据该方法中的参数计算采样间隔,并根据该采样间隔触发 OnRecordAudioFrame 回调。
- 方法二:调用 RegisterAudioFrameObserver 注册音频观测器对象后,在 回调的返回值中设置具体的音频观测位置,然后在 回调的返回值中设置音频数据格式,SDK 会根据该回调的返回值计算采样间隔,并根据该采样间隔触发 OnRecordAudioFrame 回调。
信息
- 方法一的优先级高于方法二,如果使用方法一设置音频数据格式,方法二设置无效。
参数
- audioFrame
- 音频原始数据。详见 AudioFrame。
- channelId
- 频道 ID。
返回值
无实际含义。
OnMixedAudioFrame
获取采集和播放音频混音后的数据。
C#
public virtual bool OnMixedAudioFrame(string channelId, AudioFrame audio_frame)
{
return true;
}
详情
为保证采集和播放混音后的音频数据格式符合预期,你可以在如下两种方法中任选一种,设置音频的数据格式:
- 方法一:调用 SetMixedAudioFrameParameters 设置音频数据格式后,调用 RegisterAudioFrameObserver 注册音频观测器对象,SDK 会根据该方法中的参数计算采样间隔,并根据该采样间隔触发 OnMixedAudioFrame 回调。
- 方法二:调用 RegisterAudioFrameObserver 注册音频观测器对象后,在 回调的返回值中设置具体的音频观测位置,然后在 回调的返回值中设置音频数据格式,SDK 会根据该回调的返回值计算采样间隔,并根据该采样间隔触发 OnMixedAudioFrame 回调。
信息
- 方法一的优先级高于方法二,如果使用方法一设置音频数据格式,方法二设置无效。
参数
- audio_frame
- 音频原始数据。详见 AudioFrame。
- channelId
- 频道 ID。
返回值
无实际含义。