我正在尝试在视图控制器中运行 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 来捕获音频,只有相机输入,所以我不应该能够以某种方式同时进行吗?