gpt4 book ai didi

iphone - 重新打开 AVCaptureSession

转载 作者:可可西里 更新时间:2023-11-01 04:40:29 25 4
gpt4 key购买 nike

我有一个可以拍照的应用程序。我的整个应用程序基于 AVCam来自 WWDC 2010 的示例代码。我搞砸了很多,但直到现在我还不知道如何正确释放相机 View ,从而释放相机 session ...

我想做的是:

  • 打开相机 View Controller
  • 拍几张照片
  • 关闭相机 View Controller
  • 再打开

我第二次推送 viewController 时 session 丢失,预览不可用,捕获也不可用。我已经发布了 full example code on github .

我解决这个问题的方法是根本不释放相机,所以相机 View Controller 充当单例,我认为这是正确的方法。此外,由于这种行为,当应用程序进入后台(例如电话调用)时,我无法找到支持相机的方法。

请指教。如何破坏相机 session ?这样做很重要吗?

最佳答案

我已将以下消息添加到 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(在我的示例中,它是 AVCamViewController-closeCamera:)。

有关完整的工作示例,欢迎您下载 AVCam-CameraReleaseTest在 github.com 上

关于iphone - 重新打开 AVCaptureSession,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7752931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com