如何使用 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

iOS - AudioToolbox 内存泄漏

如何制作 SystemSoundID 数组?使用 AudioToolbox 框架

iOS开发之音频播放录音

iOS学习笔记23-音效与音乐