我想从 wave、mp3 和 aiff 文件中读取数据并将这些数据用于 fft。AudioToolbox 框架看起来不错,但有很多不同和相似的功能,这让我很困惑。
你能帮我列出功能吗?所以我需要用audioData获取numberOfFrames、channel、sampleRate、bitRate和array。
谢谢。
我想从 wave、mp3 和 aiff 文件中读取数据并将这些数据用于 fft。AudioToolbox 框架看起来不错,但有很多不同和相似的功能,这让我很困惑。
你能帮我列出功能吗?所以我需要用audioData获取numberOfFrames、channel、sampleRate、bitRate和array。
谢谢。
您需要加载文件,获取属性并读取。
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。
我希望这可以帮助你。