修改音频原始数据 编辑文档

功能描述

QttAudio支持对SDK采集到的音视频数据进行前处理和后处理,获取想要的播放效果。

  • 前处理:即在音频数据发送到编码器前获取原始的音频数据进行处理,主要针对本地麦克风采集到的音频数据。

  • 后处理:即在音频数据发送给解码器后获取原始的音频数据进行处理,主要针对接收到的远端用户音频数据。

可以通过向引擎注册原始音频采集数据监听器,实现采集、修改原始音频数据功能,但不能改变数据大小。

接口描述

@protocol QttRtcDataDelegate <NSObject>
@optional
/**
* 获取到数据
* @param buf
* @param len
*/
- (int)onData:(char *)buf len:(int)len;
@end;

@interface QttChannelEngine : NSObject
/**
* 设置原始音频采集数据监听器,可修改数据,但不能改变数据大小
* @param observer 数据监听器
* @param channels 声道数,可以为1或者2
* @param bufSize 数据回调大小,小于等于0为默认值
* @return
- 0(ERR_SUCCESS): 成功.
- < 0: 失败.
*/
- (int)setRecordDataObserver:(id<QttRtcDataDelegate>)observer samplerate:(int)samplerate channels:(int)channels bufSize:(int)bufSize;

/**
* 设置原始音频播放数据监听器,可修改数据,但不能改变数据大小
* @param observer 数据监听器
* @param bufSize 数据回调大小,小于等于0为默认值
* @return
- 0(ERR_SUCCESS): 成功.
- < 0: 失败.
*/
- (int)setPlaybackDataObserver:(id<QttRtcDataDelegate>)observer samplerate:(int)samplerate channels:(int)channels bufSize:(int)bufSize;
@end

示例代码

@interface QttRtcDataDelegateImpl : NSObject<QttRtcDataDelegate>
- (int)onData:(char *)buf len:(int)len;
@end

@implementation QttRtclDataDelegateImpl
- (int)onData:(char *)buf len:(int)len {
//对数据进行处理
return true;
}
@end
id<QttRtcDataDelegate> recordDelegate = [[QttRtcDataDelegateImpl alloc] init];
[engine setRecordDataObserver:recordDelegate samplerate:16000 channels:1 bufSize:0];

id<QttRtcDataDelegate> playDelegate = [[QttRtcDataDelegateImpl alloc] init];
[engine setPlaybackDataObserver:playDelegate samplerate:16000 channels:1 bufSize:0];
野狗新手?
立即注册,为你提供安全可靠的实时通信云服务。
没找到需要的文档?
你可以提交工单反馈 或 阅读常见问题