Как читать аудиофайлы с помощью AudioToolbox Framework?

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

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

Благодарю.


person andrey    schedule 05.03.2012    source источник


Ответы (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);

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

Я надеюсь это тебе поможет.

person user1587368    schedule 11.08.2012