测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2017 年 6 月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 Lawrence Tran 维护。
Gif Camera Controller 是一种相机输出,通过连续拍照来创建 GIF。
实例化一个 GifCameraController
并在一个 do-catch 语句中运行 setupSession()
。使用 GifCameraPreview
视图查看相机预览。请注意,GifCameraPreview
当前不支持界面构建器。您必须在使用代码中实例化。
var gifCamera: GifCameraController!
var previewView: GifCameraPreviewView!
self.gifCamera = GifCameraController()
do {
if try self.gifCamera.setupSession() {
self.gifCamera.setPreviewView(self.previewView)
}
} catch let error as NSError {
self.gifCamera = nil
print(error.localizedDescription)
}
然后设置持续时间以及每秒帧数。
self.gifCamera.maxDuration = 2.0
self.gifCamera.framesPerSecond = 3
开始捕获会话并开始录制。
self.gifCamera.startSession()
self.gifCaemra.startRecording()
当录制完成后,委托将输出帧。
var delegate: GifCameraControllerDelegate
相机控制器的委托。这必须设置。
var maxDuration: Double
gif 的最大持续时间。默认为 4 秒。
var framesPerSecond: Int
相机的捕获率。默认为 18 fps。
var currentDevicePosition: AVCaptureDevicePosition
当前设备位置。(只读)
func setupSession() throws -> Bool
设置相机控制器。这必须在会话开始之前调用。
func setPreviewView(view: GifCameraPreviewView)
向相机控制器添加预览视图。您必须在代码中实例化 GifCameraPreviewView
。
func startSession()
开始捕获会话。
func stopSession()
停止捕获会话。
func isRecording() -> Bool
返回会话是否正在录制。
func startRecording()
开始录制。
func pauseRecording()
暂停录制。不重置当前参数。
func cancelRecording()
停止录制并重置所有变量。
func stopRecording()
结束录制。
func toggleCamera()
在前后摄像头之间切换。注意 GifCameraController
默认为前摄像头。
func toggleTorch(forceKill forceKill: Bool) -> Bool
切换手电筒并返回手电筒是否开启。将 forceKill 设置为 true 以关闭手电筒。
func cameraController(cameraController: GifCameraController, didFinishRecordingWithFrames frames: [CGImage], withTotalDuration duration: Double)
将帧、持续时间等调用返回给委托。在调用 stopRecording()
或当 maxDuration
达到时调用。
func cameraController(cameraController: GifCameraController, didAppendFrameNumber index: Int)
通知委托帧已附加。
要运行示例项目,请首先克隆仓库,然后从 Example 目录中运行 pod install
。
GifCameraController 通过 CocoaPods 提供。要安装,只需将以下行添加到您的 Podfile 中
use_frameworks!
pod "GifCameraController"
Lawrence Tran
更多信息请参阅 LICENSE 文件。