Как читать аудиофайлы с помощью AudioToolbox Framework? - PullRequest
0 голосов
/ 05 марта 2012

Я хочу прочитать данные из файлов wave, mp3 и aiff и использовать эти данные для fft. AudioToolbox Framework выглядит хорошо, но есть много разных и похожих функций, и это сбивает меня с толку.

Можете ли вы помочь мне со списком функций? Поэтому мне нужно получить numberOfFrames, channel, sampleRate, bitRate и массив с audioData.

спасибо.

1 Ответ

1 голос
/ 11 августа 2012

Вам нужно загрузить свой файл, получить свойство и прочитать.

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);

Вам нужно написать CreateAudioBuffer с данными malloc и WorkWithFrames.

Надеюсь, это поможет вам.

...