捕捉媒体

输入设备(device)->添加到捕捉会话(session)->添加输出(output)对象到捕捉会话->连接(connection)输出对象->通过连接 获得对应输出的数据流

捕捉媒体_第1张图片

AVCaptureDevice 用来获得这个设备的类,切换摄像头、设置闪光灯、对焦、曝光、黑白平衡等就需要重点入手这个类。

AVCaptureSession 管理输入设备 可以同时连接多个输入设备,比如摄像头和麦克,并且为媒体捕获做些预设配置(格式、质量),还可以动态的配置输入的线路,可以控制捕获的开始和停止,并且可以调控设备的切换。尽量异步调用

输入输出相关:

public var inputs: [AnyObject]! { get } 获得输入设备的数组

public func canAddInput(input:AVCaptureInput!) ->Bool 是否可以添加输入设备可用于判断是否可以切换 输入设备 如前后摄像头

public func addInput(input:AVCaptureInput!) 添加输入设备如果切换设备的时候  需要判断是否可以切换 并且调用beginConfiguration()来提示更新配置 切换完成后 需要提交配置commitConfiguration()

public func removeInput(input:AVCaptureInput!) 移除输入设备

public var outputs: [AnyObject]! { get } 获得输出设备数组

public func canAddOutput(output:AVCaptureOutput!) ->Bool 是否可以添加输出设备

public var outputs: [AnyObject]! { get } 获得输出设备数组

public func removeOutput(output:AVCaptureOutput!) 移除输出设备

运行状态相关:

public func startRunning() 开始运行

public func stopRunning() 停止运行

public var running:Bool{ get } 会话是否正在运行

public var interrupted:Bool{ get } 会话是否被中断

更改配置:

public func beginConfiguration() 开始配置

public func commitConfiguration() 提交配置

管理会话预设:

func canSetSessionPreset(preset:String!) ->Bool 是否可以为会话设置预设

public var sessionPreset:String! 设置预设

管理线路连接:

@available(iOS8.0, *)

public func addInputWithNoConnections(input:AVCaptureInput!) 注意这个方法iOS8才可以使用  添加输入设备,一般咱们使用addInput:这个方法,但是你需要精细的控制输入的时候 可以选择使用这个方法

@available(iOS8.0, *)

public func addOutputWithNoConnections(output:AVCaptureOutput!) 添加输出设备与上面相似

@available(iOS8.0, *)

public func canAddConnection(connection:AVCaptureConnection!) ->Bool 是否可以添加连接

@available(iOS8.0, *)

public func addConnection(connection:AVCaptureConnection!) 添加捕获连接  可通过它 在代理方法中 分区捕获的数据

@available(iOS8.0, *)

public func removeConnection(connection:AVCaptureConnection!) 移除捕获连接

共享应用程序的音频会话:

public var usesApplicationAudioSession:Bool 是否使用了音频会话

public var automaticallyConfiguresApplicationAudioSession:Bool 是否自动配置音频会话

同步输入输出的时钟

public var masterClock:CMClock! { get } 输出时候的时钟同步对象

你可能感兴趣的:(捕捉媒体)