首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

01 使用 AVFoundation 构建相机

在上篇文章 AVFoundation 框架介绍 一文,我们简单介绍了 AVFoundation 的整体架构。本篇文章,我们将从一个简单的相机实例入手,从零开发一个 AVCam 相机App。... AVCam 示例 AVCamCameraViewController viewDidLoad 方法,我们首先创建了一个 AVCaptureSession。...一种为 AVCaptureVideoPreviewLayer 设置一个 AVCaptureSession ,iOS 系统自动会将采集到的画面输出到 View 。...之前的文章我们已经知道,AVCaptureDevice 是一个抽象类,每个具体的示例都会对应一个设备,例如摄像机或麦克风。...04 配置相机权限 配置权限千万不要忘记,需要我们 plist 配置相关说明。 ? 还需要在启动相机之前,让用户授权。 ?

2.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

AVFoundation 框架介绍

本期内容: AVFoundation 概述 AVFoundation 的常用类 AVFoundation 采集设备 结束语 02 AVFoundation 概述 AVFoundation 是 iOS...我们可以通过 AVCaptureSession 输入设备实时捕捉处理图像信息。下面是 iOS 系统AVFoundation 媒体架构: ? 通常,我们使用高级接口就可以满足我们的大部分需求。...AVFoundation 一般用于对媒体文件(Asset)进行编辑,短视频场景下用的较多。...采集设备 03 AVFoundation 常用类 章节,我们并没有提到 iOS 相机采集,因为相机采集足够复杂, 我们将相机采集独立成章,足够我们使用一篇文章单独讲解。...这里我们姑且抛砖引玉, 以后的文章我们将开放一款 相机 APP。 AVFoundation Capture 子系统为 iOS 的视频,照片和音频捕获服务提供了通用的高级体系架构。

3.1K10

一文看完 WWDC 2022 音视频相关的更新要点丨音视频工程示例

2)面部驱动的自动对焦自动曝光 自动对焦系统调整镜头以保持主体清晰,自动曝光系统则平衡场景中最亮和最暗的区域以保持主体可见。...但是,有时所做的自动调整并不能使拍摄对象的脸部保持对焦明亮的背光场景下,拍摄对象的脸部可能很难看清。 如果不开启面部驱动的自动对焦相机会保持对背景的对焦,而无需重新对焦于面部。...启用面部驱动自动对焦后,相机会主动对焦人脸,这样就能使人脸更清晰。当人脸离开画面时,相机会将焦点转移到背景上。...下面是未开启面部驱动的自动对焦自动曝光和开启后的对照: 开启面部驱动自动对焦的前后对照 开启面部驱动自动曝光的前后对照 3)高级视频采集流 iOS 16 和 iPadOS 16 的新增功能,应用程序可以同时使用多个...下面展示了将 macOS 的扩展用于创意相机场景的示例:扩展程序访问来自多个相机的视频流,将它们合成后再发送到应用程序

2.5K10

iOS开发之扫描二维码

自iOS7以后,iOS扫描二维码不需要借助于第三方框架了,苹果AVFoundation中原生支持了扫描二维码的API,主要涉及到5个类,这5个类自定义相机或者视频时也用得上,网上有很多介绍,这5个类分别为...: AVCaptureSession:媒体捕获会话,负责把捕获的音视频数据输出到输出设备。...AVCaptureVideoPreviewLayer:相机拍摄预览图层,是CALayer的子类,使用该对象可以实时查看拍照或视频录制效果,设置好尺寸后需要添加到父view的layer。...我参考了网上的很多博客并自己摸索了以后,写了一个具体的实现案例,过程遇到很多坑,在此记录并分享一下。...界面布局.png 主要代码 #import "ViewController.h" #import @interface ViewController

1.8K40

iPhone 摄影的深度捕捉 ( WWDC2017-Session 507 ) 上篇

iOS 11,驱动此功能的深度数据现在开放使用。 了解如何利用深度信息为创意成像开辟新的可能性。 获得对高层次深度概念的更广泛的了解,并学习如何从相机捕获流式传输和静态图像深度数据。...,会自动切换广角与长焦; 适配曝光、对焦和帧速率; 对视差偏移进行补偿,使其广角和长焦之间来回切换时平滑过渡。...iOS10,depth信息还只是包含在苹果自己相机的人像模式。iOS11,苹果正在向第三方应用开放depth map。...Introducing AVDepthData 苹果的平台( iOS, macOS, and tvOS)对于深度的规范表示叫做AVDepthData。 它是AVFoundation框架的一个类。...下面一个代码示例: func dataOutputSynchronizer(_ synchronizer: AVCaptureDataOutputSynchronizer, didOutput synchronizedDataCollection

3.5K10

iOS 视频处理框架及重点 API 合集丨音视频工程示例

音视频工程示例这个栏目的 13 篇 AVDemo 文章,我们拆解了音频和视频的采集 → 编码 → 封装 → 解封装 → 解码 → 渲染流程并基于 iOS 系统 API 实现了 Demo: 音频 Demo... CMSampleBuffer ,采样是以解码顺序存储的,即使与展示顺序不一致。...CMBufferQueue 是设计用于在生产者/消费者模型不同的线程读写数据。通常是两个线程(一个是生产者入队线程,一个是消费者出队线程),当然更多的线程也是可以的。...AVCaptureSession[90]:采集会话。用于管理采集活动,协调采集数据采集设备和采集输出对象之间的流转。...language=objc [90] AVCaptureSession: https://developer.apple.com/documentation/avfoundation/avcapturesession

1.8K21

iOS - 视频采集详解

苹果官方文档-AVFoundation 为了管理从相机或者麦克风等这样的设备捕获到的信息,我们需要输入对象(input)和输出对象(output),并且使用一个会话(AVCaptureSession)来管理...,session 会自动建立起一个连接(AVCaptureConnection)。...我们可以使用这个 connection 来设置从 input 或者 从 output 得到的数据的有效性,也可以用来监控音频信道功率的平均值和峰值。 ?...AVCaptureSessionPreset1280x720]) { captureSession.sessionPreset = AVCaptureSessionPreset1280x720; } 附苹果官方文档可供配置的分辨率列表...ciImage]; dispatch_async(dispatch_get_main_queue(), ^{ self.imageView.image = image; }); 需要注意的是:代理方法的所有动作所在队列都是异步串行队列

1.2K30

iOS-AVFoundation自定义相机详解

AVFoundation 关于视频主要的类 目录 相机基本实现步骤 捕捉会话——AVCaptureSession 捕捉输入——AVCaptureDeviceInput 捕捉预览——AVCaptureVideoPreviewLayer...下面是创建一个 session 的代码AVCaptureSession *captureSession = [[AVCaptureSession alloc]init]; [captureSession...真正用于输出的是AVCaptureSession(previewLayer拥有session,session拥有outputs); 它的坐标系和屏幕的坐标系不同,如果点击某区域实现对焦时,我们需要将设备的坐标系转换为实时预览图的坐标...相机的操作都是一些固定的代码,我就不多讲了,我们只需要注意以下几点: 1.闪光灯和手电筒不能同时开启 2.在前置摄像头时不能开启手电筒,所有转换时,会被强制关闭 3.前后摄像头需要分别设置闪光灯的开关...,本例,视频就是用的这种处理方式。

2.4K80

iOS学习——iOS原生实现二维码扫描

,如何自动定位获取用户的当前地点在上一篇随笔iOS学习——自动定位已经讲过了,本文就简单地说一下如何利用iOS原生的模块实现二维码的扫描。   ...iOS系统原生的二维码扫描模块是iOS7之后推出的,它主要是利用iOS设备的后置摄像头进行实现的。 要调用系统的摄像头识别二维码,我们需要导入系统的AVFoundation库。...* session; //AVFoundation框架捕获类的中心枢纽,协调输入输出设备以获得数据 @property (strong, nonatomic) AVCaptureVideoPreviewLayer...[self.view addSubview:label]; }   接下来我们看一下如何配置我们的缩放手势,这个相对而言就很简单了,我们直接在self.view上添加一个缩放手势,并在对应的方法对我们的相机设备的焦距进行修改就达到了缩放的目的...recogniser.state == UIGestureRecognizerStateBegan){ _initScale = _device.videoZoomFactor; } //相机设备改变某些参数前必须先锁定

2.3K150

初试 iOS 11 新框架:Vision Framework 让文字检测变得更容易

2017 年的 WWDC ,Apple 释出了许多新框架(frameworks),Vision Framework 便是其中一个。...我们的第一步就是要建立一个即时影像来检测文字, imageView 底下宣告一个 AVCaptureSession 属性: var session = AVCaptureSession() 这样就初始化了一个可以用来作即时...我们逐行的将代码说明一遍。 我们首先修改 AVCaptureSession 的设定。然后我们设定 AVMediaType 为影片,因为我们希望是即时影像,此外它应该要一直持续地运作。...[0].frame = imageView.bounds } 执行之前,要在 Info.plist 加入一个条目来说明为何你需要使用到相机功能。... ViewController.swift 的扩展(Extension)插入下面的代码: func captureOutput(_ output: AVCaptureOutput, didOutput

2.4K40

iOS微信小视频优化心得

image.png 小视频是微信6.0版本重大功能之一,开发过程遇到不少问题。本文先叙述小视频的产品需求,介绍了几个实现方案,分析每个方案的优缺点,最后总结出最优的解决方案。...方案对比 对方案二、三做了滑动性能对比和耗电对比,测试条件分别是 滑动:iPhone4的聊天窗口,有30个小视频,来回做4次列表滑动 耗电:iPhone5s,屏幕亮度调到最大,禁止自动锁屏,开启飞行模式...小视频录制需求 支持白平衡、对焦、缩放 录制视频长度6秒,30帧/秒,尽量不丢帧 能录制不同尺寸和码率的视频 小视频录制方案 对于需求1,AVFoundation有API可以支持,这里不多说。...综上所述,要想拍视频不卡,就要在录制过程尽量不做CPU耗时操作,而且AVCaptureOutput传递数据给上层时不能卡住AV线程。...通过这样处理,拍视频流畅度跟系统相机接近了,只是刚拍的前1s帧数只有18帧,后面稳定到30帧/秒左右了。

4.3K91

Android Camera2 Focus Distance

应用程序实现手动对焦功能。...我已经谷歌样本Camera2应用程序添加了一个SeekBar,但我找不到实现手动对焦的方法。 我camera2,android中找到了手动对焦,但它在我的LG G4上无效。...库存相机应用程序几乎是完美的,因为它不允许手动对焦视频模式。 你们有谁有想法吗?...关键是相机设备的可用功能是否列出MANUAL_SENSOR 。 如果是这样,则可以通过将自动对焦模式设置为OFF来控制镜头,然后将镜头焦距设置为所需的值。...后者不影响所使用的自动对焦的类型,我假设您要对触摸到焦点的操作执行AF_MODE_AUTO。 如果要手动对焦,则需要将AF_MODE_OFF设置为禁用自动对焦

1.3K10

100 行代码写一个手机AR

Scenekit_16.gif 使用技术 苹果亲儿子 SceneKit 3D框架 话不多说直接上干活 ---- 实现思路 第一步 - 摄像头捕捉生活场景 第二步 - 使用SceneKit 框架加载...3D 模型文件 第三步 - 使用重力感应类获取手机旋转角度,模型的视角位置 ---- 代码实现部分 第一步 - 通过照相机捕捉现实生活的场景,这个想必iOS 开发者都很熟悉,我就简单的说一下...使用的框架AVFoundation Step-1.实现两个协议 1.AVCaptureMetadataOutputObjectsDelegate 2.UINavigationControllerDelegate...AVCaptureMetadataOutput() output.setMetadataObjectsDelegate(self, queue: DispatchQueue.main) session = AVCaptureSession...混编 此demo的代码,我已放在这里 Swift教程 SceneKit 中文教程 VR全景播放器

1.1K20

打脸苹果官方那种

最近苹果官方表示,iPhone相机可能会因为暴露在一些高振幅振动场景而被损坏。 因此,他们向iPhone用户发出警告,建议大家不要把手机直接连接到这类摩托车上。 但更打脸的还在后面。...有人发现,苹果2019年宣传iPhone 11 Pro时,曾展示过一段沙漠越野拍摄的场景。 其中有一段非常明显地展示了iPhone 11 Pro强烈振动下的使用情况。...苹果表示,iPhone相机之所以能够各种情况下都拍摄出高清、精美的照片,与光学防抖 (OIS)和自动对焦 (AF)这两个功能离不开关系。...这是因为OIS的陀螺仪可以感知到相机的移动,如果让镜头根据陀螺仪的角度移动,就能减小图像移动时产生的模糊。 自动对焦则可以抵抗重力和振动的影响,保证图像静止、拍摄视频或全景照片时,可以清晰对焦。...通过自动对焦,机载磁感器可以测量到重力和振动产生的影响,然后确定镜头位置,从而可以准确设置补偿。

33010
领券