2011-01-27 5 views
2

Я только начал узнавать об AudioQueues из книги CoreAudio (грубые порезы). Я сделал учебное пособие по воспроизведению звука AudioQueue, которое в основном совпадает с примером учебника для Apple. Все работает нормально.Как сделать AudioQueue без замораживания GUI?

Проблемы возникают, когда я пытаюсь реализовать код в приложении с графическим интерфейсом. Я протестировал его, вставив код в метод «init» подкласса NSObject. Единственный способ заставить очередь сделать обратный вызов - вставить пустой цикл DO ... WHILE в конце моего init, но это заставляет замолчать GUI (очевидно ...) !!

Очевидно, что AudioQueue должен запускаться в отдельном потоке автоматически, пока AudioQueueNewOutput передается NULL для аргументов inCallbackRunLoop и CallbackRunLoopMode. Это просто не происходит. Я слышу только 1,5 секунды от заливки буферов.

Очевидно, что есть что-то фундаментальное, что я не понимаю, о том, как работают вещи ...

Kasper

-(void) start 
{ 
CheckError(
    AudioQueueStart(queue, NULL), 
"AudioQueueStart failed"); 

printf("Playing...\n"); 
do { 
} while (0 == 0);   //WHY IS THIS MAKING IT PLAY??? 
} 

ответ

2

Оказывается, что мой USERDATA структура не была объявлена ​​как Ивар в файл заголовка. Ошибка новичков ...

 Смежные вопросы

  • Нет связанных вопросов^_^