Я пытаюсь запустить AVCaptureSession в контроллере представления, но внутри него я также вызываю функцию из библиотеки, которая использует AVAudioSession. Кажется, я не могу получить много информации от отладчика, кроме того, что он падает именно тогда, когда я вызываю функцию этой конкретной библиотеки. Библиотека libpd:
и он вызывает AVAudioSession как sharedInstance. Я вызываю libpd как:
[self.audioController configurePlaybackWithSampleRate:44100 numberChannels:2 inputEnabled:YES mixingEnabled:YES]
поэтому микширование включено, но на всякий случай я перекомпилировал его так, что при запуске я делаю:
UInt32 doSetProperty = 1;
AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(doSetProperty), &doSetProperty);
но, не повезло. Перемещение вызовов libpd в viewWillAppear внутри контроллера представления также не сработало. Однако, если я возьму код, вызывающий libpd, из моего контроллера представления и поместлю его в делегат приложения в didFinishLaunchingWithOptions, он запустится нормально, и два сеанса, кажется, сосуществуют без сбоев.
Я что-то упустил в AVCaptureSession и микшировании? Как сделать, чтобы оба сеанса сосуществовали? Я не использую AVCapture для захвата звука, только вход с камеры, так что не должен ли я как-то иметь оба варианта?