당신이, 당신은에서 무엇을 찾고있는 오디오 샘플 버퍼 작동 가서 파일에 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
저는이 물건에 대해 조금 잃어 버렸고 매우 멍청합니다. '출력'이란 무엇입니까? – jangelo42
@ jangelo42 두 번째 줄에서 제공하는 링크를 확인하십시오 (조각이 아닌 완전한 해결책). 출력은 AVAssetReaderOutput입니다. – Daniel