相关推荐
ios 手机相机调用使用(媒体捕捉)手机av「ios 手机相机调用使用(媒体捕捉)」
2025-01-12 16:12

AVFoundation是苹果在iOS和OS X系统中用于处理基于时间的媒体数据的Objective-C框架. 供使用者来开发媒体类型的应用程序.

虽然现在你可以在iOS和 OS X系统中通过WebView或HTML标签直接来播放音视频内容,但是如果想要加入额外媒体相关功能如:录制,音视频流控制,添加额外动画和图片效果等.则需要专门的音视频框架进行控制.
在这里插入图片描述

  • AVCaptureSession 捕捉会话

AVCaptureSession相当于一个虚拟的插座,连接了输入和输出资源.它管理着从物理设备(摄像头和麦克风)得到的数据流,然后输出到其他地方.
可以额外配置一个会话预设值,用来控制捕捉数据的格式和质量,默认是AVCaptureSessionPresetHigh

  • AVCaptureDevice 捕捉设备

AVCaptureDevice为物理设备定义一个接口和大量控制方法,例如对焦、曝光、白平衡和闪光等

  • 捕捉设备输入 AVCaptureDeviceInput

在使用AVCaptureDevice进行处理前,需要将它封装到AVCaptureDeviceInput实例中.因为一个捕捉设备不能直接添加到AVCaptureSession中

  • 捕捉的输出 AVCaptureOutput

AVCaptureOutput有许多扩展类,它本身只是一个抽象基类,用于为从Session得到的数据寻找输出目的地. 看上面结构图就可以看出各扩展类功能方向, 这里单独说一下,AVCaptureAudioDataOutput和AVCaptureVideoDataOutput可以直接访问硬件扑捉到的数字样本,可以用于音视频流进行实施处理

  • 捕捉连接 AVCaptureConnection

这个类其实就是上图中连接不同组件的连接箭头所表示. 对这些连接的访问可以让开发者对信号流就行底层控制,比如禁用某些特定的连接,或者音频连接中限制单独的音频轨道

  • 捕捉预览 AVCaptureVideoPreviewLayer

这个类不在上图中, 它是对捕捉视频数据进行实时预览.在视频角色中类似于AVPlayerLayer

捕捉会话应用流程

a.用之前先判断相机权限

 

b. 创建会话

@property (nonatomic,strong) AVCaptureDevice *cam_back;

@property (nonatomic, strong) AVCaptureSession *session;

@property (nonatomic, strong) AVCaptureVideoDataOutput *videoDataOutput;

@property (nonatomic, strong) AVCaptureVideoPreviewLayer *videoPreviewLayer;

 

c . 停止,启动,检查会话

 

其他细节(切换摄像头,聚焦

a.切换摄像头

 

b.代理处理数据(拍照)

@property (nonatomic,copy) NSArray *currentmetadata;

typedef void (^ShutterImageBlock)(UIImage *image);

@property (nonatomic,copy) ShutterImageBlock callBack;

 

从获取的sampleBuffer中获取图片数据

 

c.聚焦

手动聚焦方式:点击屏幕,获取point数据,调用捕捉的设备 setFocusPointOfInterest和setFocusMode , 两者调用顺序不能变。

_focusView是UIView类型,显示点击的区域。

注意⚠️:给设备配置属性时需要用lockForConfiguration ,unlockForConfiguration 包住,不然会使APP崩溃。

在初始化session时添加点击事件,用来获取点击的CGPoint

 
 

在这里插入图片描述

    以上就是本篇文章【ios 手机相机调用使用(媒体捕捉)手机av「ios 手机相机调用使用(媒体捕捉)」】的全部内容了,欢迎阅览 ! 文章地址:http://sjzytwl.xhstdz.com/quote/87518.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 物流园资讯移动站 http://sjzytwl.xhstdz.com/mobile/ , 查看更多   
发表评论
0评