2012-03-05 33 views
0

我想要读取wave,mp3和aiff文件中的数据并将其用于fft。 AudioToolbox框架看起来不错,但有很多不同的和类似的功能,它让我感到困惑。如何使用AudioToolbox Framework读取音频文件?

你能帮我一下功能列表吗?所以我需要使用audioData获取numberOfFrames,channel,sampleRate,bitRate和数组。

谢谢。

回答

1

你需要加载你的文件,并获得属性和阅读。

ExtAudioFileRef myfile; 
ExtAudioFileOpenURL(yourURL, &myfile); 

// after you get a AudioStreamBasicDescription 
AudioStreamBasicDescription desc={0}; 
ExtAudioFileGetProperty(myfile, kExtAudioFileProperty_FileDataFormat, sizeof(AudioStreamBasicDescription), &desc); 
AudioBufferList *ioData = CreateAudioBuffer(desc); 
UInt32 nbFrames = 512; 
while(nbFrames != 0) 
{ 
    nbFrames = 512; 
    ExtAudioFileRead(myfile, &nbFrames, ioData); 
    WorkWithFrame(ioData, nbFrames); 
} 

ExtAudioFileDispose(myfile); 

您需要用数据malloc和WorkWithFrames编写CreateAudioBuffer。

我希望这可以帮助你。

相关问题