在这里你去这个工程的音频采样缓冲区,是你在找什么,如果你想看看整个过程(正从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