KSYAudioMixer Class Reference
| Inherits from | NSObject |
|---|---|
| Declared in | KSYAudioMixer.h |
Overview
多路pcm混音
- 用trackId来表示某一路音频,从0开始编号
- 要求一定要有一路麦克风的音频,其他音频都叠加到麦克风上
- 将输入的音频pcm数据存入buffer,每一路音频的buffer独立
- 每次麦克风的音频输入,都会触发从所有buffer中取数据,混合,发送的动作
- 每一路音频可以单独配置音量
- 输出格式固定为 44.1KHz, S16 (声道数可设定)
– setMixVolume:of:
设置混音音量(默认音量为1.0)
- (BOOL)setMixVolume:(float)vol of:(int)trackIdParameters
vol |
音量比例(0.0~2.0) (<1.0 为缩小, > 1.0为放大) |
|---|---|
trackId |
设置对应track的 |
Return Value
NO为设置失败,如track不存在,或vol超出范围
Discussion
Warning: 设置放大的音量可能会出现爆音, 请注意 *
Declared In
KSYAudioMixer.h
– getMixVolume:
查询track的音量
- (float)getMixVolume:(int)trackIdParameters
trackId |
设置对应track的 |
|---|
Return Value
负数为查询失败,如track不存在 *
Declared In
KSYAudioMixer.h
– setTrack:enable:
开启/关闭一路声音
- (BOOL)setTrack:(int)trackId enable:(BOOL)onOffParameters
trackId |
开关对应track |
|---|---|
onOff |
开关, 0号track默认开启 |
Return Value
NO为设置失败,比如trackID不存在 *
Declared In
KSYAudioMixer.h
– getTrackEnable:
查询track是否开启
- (BOOL)getTrackEnable:(int)trackIdParameters
trackId |
开关对应track * |
|---|
Declared In
KSYAudioMixer.h
– getBufLength:
查询track中缓存数据的长度(单位为一次输出的samplebuffer数)
- (int)getBufLength:(int)trackIdParameters
trackId |
开关对应track |
|---|
Return Value
<0, 表示查询失败 =0,表示残余的数据不足一次输出 >0, 表示可以buffer中的数据还可以输出n次 *
Declared In
KSYAudioMixer.h
– processAudioSampleBuffer:of:
输入音频PCM
- (BOOL)processAudioSampleBuffer:(CMSampleBufferRef)sampleBuffer of:(int)trackIdParameters
sampleBuffer |
音频数据 |
|---|---|
trackId |
设置对应track的 |
Return Value
NO为设置失败,比如trackID不存在
Declared In
KSYAudioMixer.h
– processAudioData:nbSample:withFormat:timeinfo:of:
输入音频PCM
- (BOOL)processAudioData:(uint8_t **)pData nbSample:(int)len withFormat:(const AudioStreamBasicDescription *)fmt timeinfo:(CMTime)pts of:(int)trackIdParameters
pData |
原始数据 |
|---|---|
len |
数据的长度,单位为字节 |
fmt |
原始数据的格式 |
pts |
原始数据的时间戳 |
trackId |
设置对应track的 |
Return Value
NO为设置失败,比如trackID不存在
Discussion
传入数据为NULL时,仅仅检查是否有数据输出
Declared In
KSYAudioMixer.h
audioProcessingCallback
音频处理回调接口
@property (nonatomic, copy) void ( ^ ) ( CMSampleBufferRef sampleBuffer ) audioProcessingCallbackDiscussion
sampleBuffer 混音后的音频数据
请注意本函数的执行时间,如果太长可能导致不可预知的问题
请参考 CMSampleBufferRef
Declared In
KSYAudioMixer.h
mainTrack
主轨的trackId (默认为0)
@property (nonatomic, assign) int mainTrackDiscussion
比如micphone的track,所有track都同步到主轨的时间轴
Declared In
KSYAudioMixer.h
bStereo
输出音频是否为双声道立体声 (默认为NO)
@property (nonatomic, assign) BOOL bStereoDiscussion
如果输入数据都不是双声道则输出数据左右耳内容一样
Declared In
KSYAudioMixer.h
outFmtDes
混音后输出PCM的格式
@property (nonatomic, readonly) AudioStreamBasicDescription *outFmtDesDiscussion
暂时为固定一种格式 (44.1KHz, S16)
Declared In
KSYAudioMixer.h