0
我想要读取wave,mp3和aiff文件中的数据并将其用于fft。 AudioToolbox框架看起来不错,但有很多不同的和类似的功能,它让我感到困惑。如何使用AudioToolbox Framework读取音频文件?
你能帮我一下功能列表吗?所以我需要使用audioData获取numberOfFrames,channel,sampleRate,bitRate和数组。
谢谢。
我想要读取wave,mp3和aiff文件中的数据并将其用于fft。 AudioToolbox框架看起来不错,但有很多不同的和类似的功能,它让我感到困惑。如何使用AudioToolbox Framework读取音频文件?
你能帮我一下功能列表吗?所以我需要使用audioData获取numberOfFrames,channel,sampleRate,bitRate和数组。
谢谢。
你需要加载你的文件,并获得属性和阅读。
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。
我希望这可以帮助你。