在這裏你去這個工程的音頻採樣緩衝區,是你在找什麼,如果你想看看整個過程(正從MPMediaItem所有的音頻數據轉換成文件檢出this問題
CMSampleBufferRef ref=[output copyNextSampleBuffer];
// NSLog(@"%@",ref);
if(ref==NULL)
break;
//copy data to file
//read next one
AudioBufferList audioBufferList;
NSMutableData *data=[[NSMutableData alloc] init];
CMBlockBufferRef blockBuffer;
CMSampleBufferGetAudioBufferListWithRetainedBlockBuffer(ref, NULL, &audioBufferList, sizeof(audioBufferList), NULL, NULL, 0, &blockBuffer);
// NSLog(@"%@",blockBuffer);
for(int y=0; y<audioBufferList.mNumberBuffers; y++)
{
AudioBuffer audioBuffer = audioBufferList.mBuffers[y];
Float32 *frame = (Float32*)audioBuffer.mData;
[data appendBytes:frame length:audioBuffer.mDataByteSize];
}
CFRelease(blockBuffer);
CFRelease(ref);
ref=NULL;
blockBuffer=NULL;
[data release];
非常感謝丹尼爾!工作就像一個魅力:) – RyanM 2012-01-15 19:24:26
我仍然有點失落,這個東西很noob。什麼是'輸出'定義爲? – jangelo42 2013-02-07 00:25:46
@ jangelo42檢查我在第二行提供的鏈接(它的完整解決方案不只是一個片段),輸出是AVAssetReaderOutput – Daniel 2013-02-07 16:37:55