Как преобразовать аудио массив float в AudioBufferList iOS?
Я хочу преобразовать массив Audio float в AudioBufferList
Ниже код, который я использую для преобразования
- (AudioBufferList *)writeList:(int)numFrames fromArray:(float**)data{
if (!data) return nil;
if (!numFrames) return nil;
AudioBufferList *abl = AllocateAudioBufferList(mStreamFormat.mChannelsPerFrame, numFrames*sizeof(short));
if (!abl) return nil;
for (long c = 0; c < mStreamFormat.mChannelsPerFrame; c++) {
abl->mBuffers[c].mNumberChannels = 2;
abl->mBuffers[c].mDataByteSize = numFrames*sizeof(short);
if (data[c]) {
short *buffer = (short*)abl->mBuffers[c].mData;
for (long v = 0; v < numFrames; v++) {
if (data[c][v] > 0.999) data[c][v] = 0.999;
else if (data[c][v] < -1.) data[c][v] = -1.;
buffer[v] = (short)(data[c][v]*32768.f);
}
}
else
memset(abl->mBuffers[c].mData, 0,numFrames*sizeof(short));
}
return abl;}
Но я получаю шумный звук.