2015-03-12 3 views
1

Я разрабатываю простое настольное приложение, которое одновременно воспроизводит и записывает аудио. Все шло хорошо, пока я так и не обработал ошибку - теперь каждый раз, когда я пытаюсь позвонить AVAudioEngineinputNode или mainMixer, он выдает сообщение об ошибке.AVAudioEngine inputNode call throws error

У меня есть свойство @property (nonatomic, readonly) AVAudioEngine *engine; в моем заголовке, и в моем init реализации метода следующий код, который бросает на inputNode вызов:

if (self = [super init]) { 
    _engine = [[AVAudioEngine alloc] init]; 

    AVAudioInputNode *node = [_engine inputNode]; 
} 
return self; 

Установка точки останова на всех результатов исключения в верхней части стек вызовов выглядит так:

#0 0x00007fff8ba19ab7 in __cxa_throw() 
#1 0x0000000108123779 in AUHAL::GetAudioChannelLayout(unsigned int, unsigned int, AudioChannelLayout*, unsigned char&)() 
#2 0x00000001081183c6 in AUBase::DispatchGetPropertyInfo(unsigned int, unsigned int, unsigned int, unsigned int&, unsigned char&)() 
#3 0x00000001081cdf66 in AUMethodGetPropertyInfo(void*, unsigned int, unsigned int, unsigned int, unsigned int*, unsigned char*)() 

У меня было это раньше, поэтому я предполагаю, что забываю что-то очевидное?

ответ

1

Хорошо, поэтому по какой-то причине удаление контрольной точки All Exceptions разрешило проблему.

Либо есть ошибка в XCode или AVFoundation, либо я не знаю, как использовать XCode, а также я должен.

+0

Xcode v6.2 кстати – benjineer

+0

И, похоже, 6.3 также. – mahboudz

+2

FWIW, поскольку исключение, исключенное из C++ Exception, вы можете изменить точку останова «Все исключения» на «Все исключения Objective-C», если вам все еще нужны исключения Objective-C (для этого щелкните правой кнопкой мыши по «Все исключения» «точка останова и выберите« Изменить точку останова », затем измените« Исключение »на« Объектив-С »вместо« Все »). – Ryan