2012-03-05 34 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。

我希望這可以幫助你。

相關問題