跳到主要内容

流处理

本地音频流处理

1.获取最终编码发送的音频数据

此回调返回的数据是最终编码发送的音频数据,比如经过SDK默认的3A(增益、回声、降噪)处理,如果还使用了混音、音效、自定义视频等功能,那么返回的数据中同时包含了以上效果的声音。 RCRTCMicOutputStreamwillSendAudioBufferCallback

@property (nonatomic, copy, nullable) RCRTCAudioDataCallback willSendAudioBufferCallback;

属性说明:

参数类型说明
willSendAudioBufferCallbackRCRTCAudioDataCallback将要发送的音频 pcm 数据的回调,用户可以直接处理该音频数据

回调说明:

typedef void(^RCRTCAudioDataCallback)(UInt32 inNumberFrames,
AudioBufferList * _Nonnull ioData,
const AudioTimeStamp * _Nonnull inTimeStamp);

返回参数:

参数类型说明
inNumberFramesUInt32帧个数
ioDataAudioBufferList音频 pcm 数据
inTimeStampAudioTimeStamp音频时间戳

2.获取麦克风采集的原始音频数据(v5.1.6版本新增)

此回调返回的数据是采集的原始音频数据,不经过SDK的任何处理。 RCRTCMicOutputStreamrecordAudioDataCallback

@property (nonatomic, copy, nullable) RCRTCAudioFrameCallback recordAudioDataCallback;

属性说明:

参数类型说明
recordAudioDataCallbackRCRTCAudioFrameCallback麦克风音频 pcm 数据的回调,用户可以直接处理该音频数据

回调说明:

typedef void (^RCRTCAudioFrameCallback)(RCRTCAudioFrame *_Nonnull frame);

返回参数:

参数类型说明
frameRCRTCAudioFrame*音频数据

远端音频

1.获取订阅的所有远端用户混音后的音频数据

接收后播放前的远端音频,上报的远端音频数据是将收到的所有远端音频进行混音后的数据。此数据从 RCRTCRoom 中的如下代理方法回调。

@property (nonatomic, copy, nullable) RCRTCAudioDataCallback receivedAudioBufferCallback;

属性说明:

参数类型说明
receivedAudioBufferCallbackRCRTCAudioDataCallback麦克风音频 pcm 数据的回调,用户可以直接处理该音频数据

返回参数:

参数类型说明
frameRCRTCAudioFrame*音频数据
inNumberFramesUInt32帧个数
ioDataAudioBufferList音频 pcm 数据
inTimeStampAudioTimeStamp音频时间戳

2.获取订阅的指定远端用户音频数据(v5.1.6版本新增)

订阅的远端流音频数据。此数据从 RCRTCAudioInputStream 中的如下代理方法回调。

@property (nonatomic, copy, nullable) RCRTCAudioFrameCallback audioDataCallback;

属性说明:

参数类型说明
audioDataCallbackRCRTCAudioFrameCallback麦克风音频 pcm 数据的回调,用户可以直接处理该音频数据

参数:

参数类型说明
frameRCRTCAudioFrame*音频数据

RCRTCAudioFrame对象的各字段:

字段类型说明
bytesuint8_t*音频数据
lengthint32_t音频数据长度(字节数)
channelsint32_t声道数
sampleRateint32_t采样率
bytesPerSampleint32_t位深
samplesint32_t帧数
renderTimeMsuint64_t时间戳