Iphone 获取Avassetrader';s样本数据

Iphone 获取Avassetrader';s样本数据,iphone,objective-c,ios,audio,core-audio,Iphone,Objective C,Ios,Audio,Core Audio,我正试图从MP3中获取PCM数据。我使用的是avassetraderoutput,它似乎可以很好地读取数据 while(true) { nextBuffer = [assetReaderOutput copyNextSampleBuffer]; if(nextBuffer) { countsample = CMSampleBufferGetNumSamples(nextBuffer); NSLog(@"%i", countsample);

我正试图从MP3中获取PCM数据。我使用的是
avassetraderoutput
,它似乎可以很好地读取数据

while(true)
{
    nextBuffer = [assetReaderOutput copyNextSampleBuffer];

    if(nextBuffer)
    {

       countsample = CMSampleBufferGetNumSamples(nextBuffer);
       NSLog(@"%i", countsample);
    }

}
我注意到,如果我加上
countsample
,它等于歌曲中的秒数(假设采样率为44100hz)。出于这个原因,我确信读数处理得很好。然而,我想做的是对这些数据执行各种DSP滤波器,但我需要对样本信息本身执行。如何访问样本数据?另外,我注意到,除了在歌曲的结尾,CMSampleBufferGetNumSamples总是返回
8192
。有没有办法提高/降低此读取速率?
谢谢

将数据附加到
NSMutableData
对象

NSMutabelData *samples = [NSMutabelData data];
while(countsample)
{
    nextBuffer = [assetReaderOutput copyNextSampleBuffer];
    if(nextBuffer)
    {
       countsample = CMSampleBufferGetNumSamples(nextBuffer);
       [samples appendBytes:nextBuffer length:countsample];
    }
}
假设代码中已经存在
countsample
nextBuffer