音频后处理

本章节主要介绍音视频SDK提供的各种音频后处理功能。后处理主要指的收到远端音频数据后的处理,主要分为单个远端用户PCM音频数据及播放前的PCM音频数据。目前音频后处理只提供简单的数据回调回调功能,暂不支持修改数据的功能。

注册单个用户PCM音频数据回调

@protocol NIMNetCallManager <NSObject>

/**
 注册远端音频数据回调

 @param uid 用户uid

 @param callback 数据回调,取消注册就设置 callback nil

 @return 是否设置成功
*/
- (BOOL)registerRemoteAudioCallBackWithUid:(NSString *)uid callback: (nullable NIMNetCallRemoteAudioPlayCallback)callback;
@end
参数 类型 说明
uid NSString 用户uid
callback NIMNetCallRemoteAudioPlayCallback 数据回调,取消注册就设置 callback nil。详情请看下文 单个用户PCM音频数据回调
//注册远端音频数据回调
[[NIMAVChatSDK sharedSDK].netCallManager registerRemoteAudioCallBackWithUid:uid callback:^(SInt64 uid, SInt16 * _Nonnull data, int channel, int samplerate, int length) {
     //写入文件
     fwrite(data, sizeof(SInt16), length, file);
}];

单个用户PCM音频数据回调

/**
音频远端数据同步回调接口

@param uid uid

@param data 数据 16位

@param channel 声道数

@param samplerate 采样率

@param length 数据长度

*/

typedef void(^NIMNetCallRemoteAudioPlayCallback)(NSString *uid,SInt16 *data,int channel,int samplerate,int length);
参数 类型 说明
uid NSString 用户uid
data SInt16 * 数据 16位
channel int 声道数
samplerate int 采样率
length int 数据长度

注册播放PCM音频数据回调

@protocol NIMNetCallManager <NSObject>

/**
 注册音频播放数据回调

 @param callback 数据回调,取消注册就设置 callback nil

 @return 是否设置成功
*/
- (BOOL)registerPlayAudioCallBack:(nullable NIMNetCallAudioPlayCallback)callback;
@end
参数 类型 说明
uid NSString 用户uid
callback NIMNetCallRemoteAudioPlayCallback 数据回调,取消注册就设置 callback nil。详情请看下文 播放PCM音频数据回调
//注册远端音频数据回调
[[NIMAVChatSDK sharedSDK].netCallManager registerPlayAudioCallBack:^BOOL(SInt16 * _Nonnull data, int channel, int samplerate, int length) {
    //写入文件
    fwrite(data, sizeof(SInt16), length, file);
    //如果需要继续播放就 return YES 不需要就 return NO;
    return YES;
}];

播放PCM音频数据回调

/**
音频播放数据同步回调接口

@param data 数据 16位

@param channel 声道数

@param samplerate 采样率

@param length 数据长度

@return YES 保留原始数据,继续播放 , NO 丢弃原始数据,不再播放

*/
typedef BOOL(^NIMNetCallAudioPlayCallback)(SInt16 *data,int channel,int samplerate,int length);
参数 类型 说明
data SInt16 * 数据 16位
channel int 声道数
samplerate int 采样率
length int 数据长度