问题标签 [avcapturesession]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
16804 浏览

iphone - 从 AVCaptureSession 捕获的 iPhone 图像比例

我正在使用某人的源代码来使用 AVCaptureSession 捕获图像。但是,我发现 CaptureSessionManager 的 previewLayer 是 shotter,然后是最终捕获的图像。在此处输入图像描述

我发现结果图像的比例始终为 720x1280=9:16。现在我想将生成的图像裁剪为比例为 320:480 的 UIImage,这样它只会捕获在 previewLayer 中可见的部分。任何想法?非常感谢。

stackoverflow 中的相关问题(还没有好的答案): Q1Q2

源代码:



在进行更多研究和测试后进行编辑: AVCaptureSession 的属性“sessionPreset”具有以下常量,我没有检查每一个,但注意到大多数比例是 9:16 或 3:4,

  • NSString *const AVCaptureSessionPresetPhoto;
  • NSString *const AVCaptureSessionPresetHigh;
  • NSString *const AVCaptureSessionPresetMedium;
  • NSString *const AVCaptureSessionPresetLow;
  • NSString *const AVCaptureSessionPreset352x288;
  • NSString *const AVCaptureSessionPreset640x480;
  • NSString *const AVCaptureSessionPresetiFrame960x540;
  • NSString *const AVCaptureSessionPreset1280x720;
  • NSString *const AVCaptureSessionPresetiFrame1280x720;

在我的项目中,我还有全屏预览(帧大小为 320x480): [[self previewLayer] setVideoGravity:AVLayerVideoGravityResizeAspectFill];

我是这样做的:以 9:16 的尺寸拍摄照片并将其裁剪为 320:480,这正是预览层的可见部分。它看起来很完美。

用于调整大小和裁剪以替换旧代码的代码是

0 投票
2 回答
759 浏览

uinavigationcontroller - ZXing 展示带有导航控制器的 ZXingWidgetController

我有一个小问题ZXingWidgetController,如果我使用导航控制器呈现控制器,视图将立即被推送,但是会有大约 1.5 秒的空白屏幕,然后 AVCapture 启动。但是,如果我将其作为模AVCapture态呈现,则在呈现模态时立即开始。

我已经篡改了WidgetController很多,因为我需要使用同一个AVCapture窗口读取其他类型的条形码,而且效果很好。我虽然这可能是问题所在,但是在尝试了未修改的 WidgetController 附带的 SampleTest 并将其推入导航控制器之后,行为是相同的。所以这不是问题。

我尝试过延迟调用推送,但延迟后视图仍然被推送并且首先出现一个空白屏幕。

有没有人处理过这个?

0 投票
1 回答
2984 浏览

ios - 为什么使用 AVCaptureSession、AVAssetWriter 和 AVPlayer 录制和回放视频会卡顿?

我正在尝试制作一个显示相机预览的应用程序,然后在某些情况下开始通过语音输入录制它,最后重复录制的电影。

我已经编写了用于预览/录制/重放的类和管理它们的协调的控制器。

似乎这些功能在独立调用时可以完美运行,但是我无法让它们一起工作:重播视频时,声音会运行,但图像需要大约五秒钟才能显示,然后出现卡顿。

这是我的代码:

预览:

记录:

播放:

0 投票
2 回答
4845 浏览

objective-c - iOS捕获相机控制器的“屏幕截图”

在我的应用程序中,我显示相机并使用 UIGetScreenImage 截取某些 perts 的屏幕截图(我尝试了 UIGraphicsGetImageFromCurrentImageContext,它适用于我的应用程序几乎任何部分的屏幕截图,但对于相机视图,它只会返回一个空白的白色图像)。 .. 无论如何,我担心 Apple 会因为 UIGetScreenImage 拒绝我的应用程序...如何在不使用此方法的情况下从相机左上角拍摄 50 像素 x 50 像素框的“屏幕截图”?我搜索了一下,我能找到的只有“AVCaptureSession”,但我找不到太多关于它的作用,或者它是否是我正在寻找的......有什么见解吗?:) 多谢你们!!!

0 投票
1 回答
2163 浏览

iphone - iPhone - 使用 AVCaptureSession 和 AVCaptureDevice 使用前置或后置摄像头

使用 AVCaptureSession 和 AVCaptureDevice 使用前置或后置摄像头的正确方法是什么?

我可以看到positionAVCapturedevice 的属性是只读的,我看不到任何其他方式来告诉我们要使用哪个设备,因为它可以通过 UIImagePicker 完成......

0 投票
1 回答
3828 浏览

ios - iOS 全屏 AVCaptureSession

我正在为 iOS 5 开发一个实时视频处理应用程序。视频流尺寸需要与设备的屏幕尺寸相匹配。我目前只有一个 iPhone 4 可以开发。对于 iPhone 4,我将 AVCaptureSession 预设设置为 AVCaptureSessionPresetMedium:

捕获的图像(通过 CMSampleBufferRef)具有屏幕大小。

我的问题:使用 AVCaptureSessionPresetMedium 会话预设捕获的图像在 iPhone 4s 和 iPad2 上也具有全屏设备尺寸的假设是否正确?不幸的是,我自己无法验证。

我查看了苹果文档:

http://developer.apple.com/library/mac/#documentation/AVFoundation/Reference/AVCaptureSession_Class/Reference/Reference.html#//apple_ref/doc/constant_group/Video_Input_Presets

但我找不到 1024/768 的 ipad2 尺寸预设,并希望为我节省实时调整图像大小的性能损失。

推荐的路径是什么?

0 投票
1 回答
1961 浏览

ios - AVCaptureSession CMSampleBuffer 问题

我在 AVCaptureSession 相机中从 CMSampleBuffer 释放内存时遇到问题。这是我设置捕获会话的代码。如果我处理 imageDataSampleBuffer,应用程序会崩溃。

}

这只是一个用于拍照的普通相机。我尝试使用您在此处发布的 UIImagePickerController:https ://github.com/migueldeicaza/TweetStation/blob/master/TweetStation/UI/Camera.cs ,它消除了 UIImagePickerController 错误,但每当我单击“拍照”按钮时,就会显示预览窗口它分配内存。如果我按下“Retake”,内存正在被释放,但在 FinishedPiCkingMedia 事件处理程序中我无法释放它。所以,在几张照片之后它崩溃了。

任何解决方案都适合我,但很高兴看到我做错了什么。

再一次感谢你。

0 投票
1 回答
3485 浏览

ios - iOS 摄像头应用,从前置摄像头切换到后置摄像头时闪烁

我正在尝试模仿从前置摄像头到后置摄像头的相机应用程序过渡。它使用 UIViewAnimationOptionTransitionFlipFromLeft ..

我目前的方法是用前置摄像头拍照,切换到后置摄像头,用后置摄像头拍照,将它们加载到两个UIImageView中并使用图像视图进行过渡..(隐藏当前的相机流在过程中)..

问题是当我调用从前置摄像头切换到后置摄像头时,cameraView(一个 AVCapturePreviewLayer)会在我隐藏它之前立即切换视图(这发生在最后一行的 FlipCameraToFront 中...... [_captureSession commitConfiguration])......

希望这是有道理的,这里有一些我省略的代码,如果你认为它会帮助让我知道,我会发布其余的。
任何帮助将不胜感激,谢谢

类:RecordVideoHandler

0 投票
2 回答
866 浏览

objective-c - 如何在主线程被阻塞时更新 CALayer 的内容?

即使主线程被阻塞, AVCaptureVideoPreviewLayer的实例也会继续从视频捕获流中更新其内容。是否可以使用自定义子类来复制这种行为CALayer?换句话说,给定原始图像数据,我们可以在主线程被阻塞时更新屏幕上显示的内容吗?

0 投票
1 回答
2903 浏览

objective-c - 使用 AVCaptureSession 录制音频/视频并同时播放音频?

我正在尝试创建一个 iOS 应用程序,它可以录制音频和视频,同时将音频输出到扬声器。

为了进行录制和预览,我使用AVCaptureSession, an AVCaptureConnectioneach 用于视频和音频, an AVAssetWriterInputeach 用于视频和音频。我基本上是通过遵循 RosyWriter 示例代码来实现的。

在以这种方式设置录音之前,我AVAudioPlayer用来播放音频。

现在,如果我正在捕获(甚至没有录制,只是捕获以供预览),并尝试使用AVAudioPlayer,我在课堂captureOutput上的回调将AVCaptureAudioDataOutputSampleBufferDelegate停止被调用。

有解决方法吗?

我应该使用另一种较低级别的服务来播放不会停止捕获的音频吗?

麦克。