gpt4 book ai didi

iphone - 如何使用 AVCaptureSession 流式传输实时预览视频,然后拍照,然后返回流式传输

转载 作者:行者123 更新时间:2023-12-03 18:40:03 24 4
gpt4 key购买 nike

我有一个应用程序,可以在拍摄静态照片之前创建自己的实时预览。该应用程序需要对图像数据进行一些处理,因此无法依赖 AVCaptureVideoPreviewLayer。使用 Apple 的示例代码,使初始流正常工作进展顺利。当我尝试切换到更高质量的图像来拍摄快照时,问题就出现了。为了响应按钮按下,我尝试重新配置 session 以拍摄全分辨率照片。我尝试了很多变体,但这是我最新的示例(仍然不起作用):

- (void)sessionSetupForPhoto
{
[session beginConfiguration];
session.sessionPreset = AVCaptureSessionPresetPhoto;
AVCaptureStillImageOutput *output = [[[AVCaptureStillImageOutput alloc] init] autorelease];
for (AVCaptureOutput *output in [session outputs]) {
[session removeOutput:output];
}
if ([session canAddOutput:output]){
[session addOutput:output];
} else {
NSLog(@"Not able to add an AVCaptureStillImageOutput");
}
[session commitConfiguration];
}

我总是在 commitConfiguration 行之后收到一条错误消息,如下所示:(也就是说,我收到发送给我注册的观察者的 AVCaptureSessionRuntimeErrorNotification)

Received an error: NSConcreteNotification 0x19d870 {name = AVCaptureSessionRuntimeErrorNotification; object = ; userInfo = { AVCaptureSessionErrorKey = "Error Domain=AVFoundationErrorDomain Code=-11800 \"The operation couldn\U2019t be completed. (AVFoundationErrorDomain error -11800.)\" UserInfo=0x19d810 {}";

XCode 中的文档表面上提供了有关错误号 (-11800) 的更多信息,“AVErrorUnknown - 错误原因未知。”;

之前我也尝试过调用 stopRunning 和 startRunning,但在观看 WWDC Session 409 后不再这样做,在该 session 中不鼓励这样做。当我停止和启动时,我收到了不同的错误消息 -11819,它对应于“AVErrorMediaServicesWereReset - 由于媒体服务不可用,操作无法完成。”,这比简单的“未知”要好得多,但不一定任何更有帮助的。

它成功添加了 AVCaptureStillImageOutput(即不发出日志消息)。

我正在 iPhone 3g(w/4.1)和 iPhone 4 上进行测试。

此调用发生在主线程中,这也是我最初的 AVCaptureSession 设置发生的地方。

如何避免该错误?如何切换到更高分辨率拍照?

谢谢!

最佳答案

由于您正在处理来自 AVCaptureSession 的视频数据,因此我假设您在调用 sessionSetupForPhoto 之前已连接了 AVCaptureVideoDataOutput。

如果是这样,您能否详细说明一下您在 captureOutput:didOutputSampleBuffer: 中所做的事情?由于无法看到更多内容,我猜测删除旧输出并随后设置照片质量预设可能存在问题。

此外,当您删除输出时用作迭代器的输出变量会隐藏静态图像输出。不是问题,但它使代码有点难以阅读。

关于iphone - 如何使用 AVCaptureSession 流式传输实时预览视频,然后拍照,然后返回流式传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4404946/

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