流处理
本地音频流处理
获取最终编码发送的音频数据
此回调返回的数据是最终编码发送的音频数据。该数据经过 SDK 默认的 3A(增益、回声、降噪)处理。如果还使用了混音、美声特效、自定义音频等功能,返回的数据中将同时包含以上效果的声音。
接口原型
Objective C
@property (nonatomic, copy, nullable) RCRTCAudioDataCallback willSendAudioBufferCallback;
属性说明
| 属性 | 类型 | 说明 |
|---|---|---|
| willSendAudioBufferCallback | RCRTCAudioDataCallback | 将要发送的音频 PCM 数据的回调,用户可以直接处理该音频数据 |
回调类型定义
Objective C
typedef void (^RCRTCAudioDataCallback)(UInt32 inNumberFrames,
AudioBufferList *_Nonnull ioData,
const AudioTimeStamp *_Nonnull inTimeStamp,
const AudioStreamBasicDescription asbd);
回调参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| inNumberFrames | UInt32 | 帧个数 |
| ioData | AudioBufferList * | 音频 PCM 数据 |
| inTimeStamp | const AudioTimeStamp * | 音频时间戳 |
| asbd | const AudioStreamBasicDescription | 音频格式描述 |
代码示例
Objective C
#import <RongRTCLib/RongRTCLib.h>
// 设置音频数据回调
[RCRTCEngine sharedInstance].defaultAudioStream.willSendAudioBufferCallback = ^(UInt32 inNumberFrames, AudioBufferList *_Nonnull ioData, const AudioTimeStamp *_Nonnull inTimeStamp, const AudioStreamBasicDescription asbd) {
// 处理最终编码发送的音频数据
// 可以在这里对音频数据进行自定义处理
// asbd 参数提供了音频格式信息(采样率、声道数、位深等)
};