Загрузка и выбор аудиофайлов в аудиоустройства

Я пытаюсь создать функцию обратного вызова рендеринга, которая будет загружать различные короткие звуковые файлы и (согласно моей пользовательской логике) помещать их в аудиобуферлист iOData моего микшерного модуля. Как загрузить файл aif или caf в программу и соответствующим образом импортировать его образцы в ioData?


person DanF    schedule 23.02.2011    source источник


Ответы (1)


См. Справочник по расширенным аудиофайловым службам. , в частности «ExtAudioFileOpenURL» и «ExtAudioFileRead». Помните, что в обратном вызове рендеринга не нужно делать ничего, что отнимает слишком много времени (например, открытие файла может считаться трудоемким, выделение памяти определенно таковым является).

person Jon Burgess    schedule 24.02.2011
comment
Итак, я могу использовать службы аудиофайлов для загрузки моих аудиофайлов в ViewDidLoad:, но как насчет второй части моего вопроса? Буду ли я использовать ExtAudioFileRead и указывать iOData на объект ioData обратного вызова Render? - person DanF; 24.02.2011
comment
@DanF Да, например: OSStatus renderCallback(..., AudioBufferList *ioData) { ...; UInt32 numFrames = inNumberFrames; ExtAudioFileRef audioFile = // Your file ref previously opened with ExtAudioFileOpenURL OSStatus result = ExtAudioFileRead(audioFile, &numFrames, ioData); // Check for error // numFrames actually read may be less than request (e.g. if EOF) } - person Jon Burgess; 25.02.2011