如何使用 AudioToolbox 框架读取音频文件?
Posted
技术标签:
【中文标题】如何使用 AudioToolbox 框架读取音频文件?【英文标题】:How do I read audio files with AudioToolbox Framework? 【发布时间】:2012-03-05 12:47:12 【问题描述】:我想从 wave、mp3 和 aiff 文件中读取数据并将这些数据用于 fft。 AudioToolbox 框架看起来不错,但有很多不同和相似的功能,让我感到困惑。
你能帮我列出功能吗?所以我需要用audioData获取numberOfFrames、channel、sampleRate、bitRate和array。
谢谢。
【问题讨论】:
【参考方案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。
希望对你有帮助。
【讨论】:
以上是关于如何使用 AudioToolbox 框架读取音频文件?的主要内容,如果未能解决你的问题,请参考以下文章
使用 AudioToolbox - Swift 从音频信号中获取原始样本流
IOS音频1:之采用四种方式播放音频文件AudioToolbox AVFoundation OpenAL AUDIO QUEUE