我有一个需要一些照片的应用程序。 我的整个应用程序基于WWDC 2010的AVCam示例代码。 我已经搞砸了很多但是,直到现在我都无法弄清楚如何正确释放相机视图,这会释放相机会话......
我所要做的就是以下几点:
第二次推送viewController会话丢失,预览不可用,捕获也不可用。我已发布full example code on github。
我的问题解决方法是根本不释放相机,因此Camera View Controller充当Singleton,我认为不正确。此外,有了这种行为,当应用程序进入后台(例如电话)时,我无法找到支持相机的方法。
请咨询。如何破坏相机会话?这样做很重要吗?
答案 0 :(得分:5)
我已将以下讯息添加到AVCamCaptureManager
- (void) destroySession {
if ([delegate respondsToSelector:@selector(captureManagerSessionWillEnd:)]) {
[delegate captureManagerSessionWillEnd:self];
}
// remove the device inputs
[session removeInput:[self videoInput]];
[session removeInput:[self audioInput]];
// release
[session release];
// remove AVCamRecorder
[recorder release];
if ([delegate respondsToSelector:@selector(captureManagerSessionEnded:)]) {
[delegate captureManagerSessionEnded:self];
}
}
当拿着相机的viewController接近时,我正在调用destroySession
(在我的例子中,它是-closeCamera:
的{{1}}。)
对于完整的工作示例,欢迎您在github.com上下载AVCam-CameraReleaseTest
答案 1 :(得分:0)