FlexibleAVCapture 2.2.5

FlexibleAVCapture 2.2.5

hahnah 维护。




FlexibleAVCapture

CI Status Version License Platform

这个库提供了一个具有灵活摄像框的 AV 捕获视图控制器。它包括默认捕获设置、预览层、按钮、点击手势对焦、捏合手势缩放等功能。

屏幕录制

screencapture

示例

要运行示例项目,请克隆仓库,然后从示例目录首先运行 pod install

安装

FlexibleAVCapture 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 即可

pod 'FlexibleAVCapture'

用法

您的视图控制器应符合以下条件

  • 采用 FlexibleAVCaptureDelegate 协议,并实现 didCapture(withFileURL fileURL: URL) 函数。
  • 创建一个 FlexibleAVCaptureViewController 对象,并设置其 delegate
import UIKit
import FlexibleAVCapture

class ViewController: UIViewController, FlexibleAVCaptureDelegate {
    
    let flexibleAVCaptureVC: FlexibleAVCaptureViewController = FlexibleAVCaptureViewController()
    
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)

        self.flexibleAVCaptureVC.delegate = self
        self.present(flexibleAVCaptureVC, animated: true, completion: nil)
    }
    
    func didCapture(withFileURL fileURL: URL) {
        print(fileURL)
    }

}

API

FlexibleAVCaptureViewController

一个管理捕获设置和会话的对象。它还显示预览层和处理用户交互。

主题 API
初始化 init() -> FlexibleAVCaptureViewController
使用后置相机初始化一个 FlexibleAVCaptureViewController 对象。
init(cameraPosition: AVCaptureDevice.Position) -> FlexibleAVCaptureViewController
初始化一个 FlexibleAVCaptureViewController 对象,使用后置相机或前置相机。
管理交互 var delegate: FlexibleAVCaptureDelegate?
充当灵活 AV 捕获视图代理的对象。
管理捕获设置 var allowsResizing: Bool
一个布尔值,表示用户是否可以调整相机帧大小。允许此功能将隐藏调整大小滑块和调整大小按钮。该属性的默认值是 true
var allowsReversingCamera: Bool
一个布尔值,表示用户是否可以逆转相机位置。允许此功能将隐藏相机逆转按钮。该属性的默认值是 true
var allowsSoundEffect: Bool
一个布尔值,表示视频录制开始和结束时是否会有声音效果。该属性的默认值是 true
var cameraPosition: AVCaptureDevice.Position
正在使用的摄像头位置来捕获视频。默认将使用后置相机。(这是一个只读属性。)
var maximumRecordDuration: CMTime
允许录制的最长持续时间。该属性的默认值是 invalid,表示没有限制。
var minimumFrameRatio: CGFloat
当应用宽屏(或最高)帧时,全帧的垂直(或水平)边长比率。该属性的默认值是 0.34
var videoQuality: AVCaptureSession.Preset
表示输出质量级别或比特率的常量值。该属性的默认值是 medium。(这是一个只读属性。)
func canSetVideoQuality(_ videoQuality: AVCaptureSession.Preset) -> Bool
返回一个布尔值,表示接收器是否可以使用给定的设置。
func forceResize(withResizingParameter resizingParameter: Float) -> Void
接收一个介于 0.0 和 1.0 之间的 Float 值,并使用该值调整相机帧大小。
func reverseCameraPosition() -> Void
将摄像机位置更改为当前位置的相反位置。
func setVideoQuality(_ videoQuality: AVCaptureSession.Preset) -> Void
更改视频捕获的质量。
替换默认 UI func replaceFullFramingButton(with button: UIButton) -> Void
替换现有的全帧按钮。
func replaceResizingSlider(with slider: UISlider) -> Void
替换现有的缩放滑块。滑块的取值范围将被强制设置为 0.0 到 1.0。
func replaceRecordButton(with button: UIButton) -> Void
替换现有的录制按钮。
func replaceReverseButton(with button: UIButton) -> Void
替换现有的相机位置反转按钮。
func replaceSquareFramingButton(with button: UIButton) -> Void
替换现有的方形框按钮。
func replaceTallFramingButton(with button: UIButton) -> Void
替换现有的高框按钮。
func replaceWideFramingButton(with button: UIButton) -> Void
替换现有的宽框按钮。

FlexibleAVCaptureDelegate

定义了FlexibleAVCaptureViewController的代理接口,以响应录制单个文件过程中发生的事件。
FlexibleAVCaptureViewController对象的代理必须采用FlexibleAVCaptureDelegate协议。

主题 API
代理方法 didCapture(withFileURL fileURL: URL) -> Void
在所有挂起的数据都已写入输出文件时通知代理。必须实现。

作者

hahnah, [email protected]

许可协议

FlexibleAVCapture遵循MIT许可协议。更多信息请参阅LICENSE文件。