FilterCam 1.0.1

FilterCam 1.0.1

中村肇维护。



FilterCam 1.0.1





概述

FilterCam 是一个简单的 iOS 相机框架,可以应用自定义 CIFilters 记录视频。此外,FilterCam 还受到了 SwiftyCam 的很大启发。

特性

FilterCam
👍 支持 iOS 10.0+
🎥 视频捕获
👓 自定义滤镜
📈 手动设置图片质量
🎉 前后摄像头支持
🔦 支持手电筒
👀 支持手动对焦
🔈 支持背景音频

要求

  • iOS 10.0+

  • Swift 4.1+

许可协议

FilterCam 在 MIT 许可下可用。更多信息请参阅 LICENSE 文件。

安装

Carthage

将此添加到 Cartfile

github "nkmrh/FilterCam"
$ carthage update FilterCam

Cocoapods

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

pod "FilterCam"

手动安装

只需将 FilterCam 文件夹的内容复制到您的项目中。

用法

使用 FilterCam 非常简单。

先决条件

截至 iOS 10,苹果要求向应用程序的 info.plist 添加 NSCameraUsageDescription 和 NSMicrophoneUsageDescription 字符串。例如

<key>NSCameraUsageDescription</key>
	<string>To record video</string>
<key>NSMicrophoneUsageDescription</key>
	<string>To record audio with video</string>

入门指南

如果您从 Cocoapods 安装 FilterCam,请确保将模块导入到您的 View Controller 中

import FilterCam

FilterCam 是一个即插即用的便利框架。要创建 Camera 实例,创建一个新的 UIViewController 子类。将 UIViewController 子类声明替换为 FilterCamViewController

class MyCameraViewController : FilterCamViewController

以上即为设置拍照和摄像的 AVSession 所需的所有内容。FilterCam 会提示用户授予使用摄像头/麦克风的权限,并配置设备输入和输出。

捕获

录像的捕获同样简单。要开始录制视频,调用 startRecording 函数。

startRecording()

要结束视频捕获,调用 stopRecording 函数。

stopRecording()

代理

您必须实现 FilterCamViewControllerDelegate 并将 cameraDelegate 设置为您的视图控制器实例。

class MyCameraViewController : FilterCamViewController, FilterCamViewControllerDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()
        cameraDelegate = self
    }
    ...
}

代理方法

func filterCamDidStartRecording(_ filterCam: FilterCamViewController) {
	// Called when startRecording() is called
}

func filterCamDidFinishRecording(_ filterCame: FilterCamViewController) {
	// Called when stopRecording() is called
}

func filterCam(_ filterCam: FilterCamViewController, didFinishWriting outputURL: URL) {
	// Called when stopRecording() is called and the video is finished processing
	// Returns a URL in the temporary directory where video is stored
}

func filterCam(_ filterCam: FilterCamViewController, didFocusAtPoint tapPoint: CGPoint) {
	// Called when a user initiates a tap gesture on the preview layer
	// Returns a CGPoint of the tap location on the preview layer
}

func filterCam(_ filterCam: FilterCamViewController, didFailToRecord error: Error) {
	// Called when recorder fail to record
}

手电筒

可以通过修改手电筒级别的属性(torchLevel)来启用手电筒。

torchLevel = 1

手电筒级别指定的是介于 0.0 和 1.0 之间的值。

切换摄像头

默认情况下,FilterCam 会启动后置摄像头。这可以通过在 viewDidLoad 中修改 defaultCamera 属性来改变。

devicePosition = .front

配置

应用过滤器

通过在过滤器属性中指定一个过滤器数组,您可以对自定义过滤器进行应用。

filters = [CIFilter(name: "CIPhotoEffectInstant")!, CIFilter(name: "CIPhotoEffectNoir")!]

过滤器属性的类型是一个CIFilter数组。它将从第一个过滤器依次应用。

预览视图

如果需要指定预览帧,您可以使用自定义初始化器。

MyCameraViewController(previewViewRect: CGRect)

视频质量

可以通过FilterCamViewController的videoQuality属性设置视频质量。可用的选择包括AVCaptureSessionPreset。

联系

如果您有任何问题、请求或增强,请随时提交拉取请求,创建问题。

中村 株二 [email protected]