Я разрабатываю простое настольное приложение, которое одновременно воспроизводит и записывает звук. Все шло хорошо, пока я каким-то образом не доработал ошибку - теперь каждый раз, когда я пытаюсь вызвать AVAudioEngine
's inputNode
или mainMixer
, выдает ошибку.
У меня есть свойство @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*) ()
Раньше у меня это работало, поэтому я предполагаю, что забыл что-то очевидное?