ビュー コントローラーで 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に移動しても機能しませんでした。ただし、viewcontroller から libpd を呼び出すコードを取り出し、didFinishLaunchingWithOptions 内のアプリ デリゲートに配置すると、正常に起動し、2 つのセッションがクラッシュすることなく共存しているように見えます。
AVCaptureSession とミキシングについて何か不足していますか? 両方のセッションを共存させるにはどうすればよいですか? AVCapture を使用してオーディオをキャプチャするのではなく、カメラ入力のみを使用しているので、どうにかして両方を実行できるようにすべきではありませんか?