LLSimpleCamera 5.0.0

LLSimpleCamera 5.0.0

测试已测试
语言语言 Obj-CObjective C
许可 自定义
发布最后发布2016年5月

Omer Faruk Gul 维护。



  • 作者
  • Ömer Faruk Gül

LLSimpleCamera:一个简单的可自定义相机 - 视频录制控制

Screenshot

LLSimpleCamera 是一个用于创建类似于 snapchat 的定制相机 - 视频录制界面的库。您无需在新视图控制器中展示相机。

您还可以使用我的 LLVideoEditor 库轻松编辑记录的视频。

LLSimpleCamera

  • 让您轻松拍摄照片和录制视频
  • 处理相机的位置和闪光灯
  • 隐藏对开发者来说繁琐的细节
  • 无需在新模态视图控制器中展示,只需将其嵌入到您的任何 VCs 中即可。 (类似 Snapchat)

版本 5.0 备注

  • 更好的录制 API
  • 可靠性提升

版本 4.2 备注

新功能

  • 缩放功能
  • 白平衡配置
  • 附着到视图控制器改进

版本 4.1 备注

合并了一些 PR

  • 相机镜像选项
  • 实现 - (instancetype)initWithCoder:(NSCoder *)aDecoder

版本 4.0 备注

感谢开源社区,最近我合并了约 10 个 PR,使这个库变得更加出色和可靠。我还进行了一些清理,其中包含一些有破坏性的更改(为此感到抱歉)。因此,我将主版本递增。

安装

pod 'LLSimpleCamera', '~> 4.1'

示例用法

初始化 LLSimpleCamera

CGRect screenRect = [[UIScreen mainScreen] bounds];

// create camera with standard settings
self.camera = [[LLSimpleCamera alloc] init];

// camera with video recording capability
self.camera =  [[LLSimpleCamera alloc] initWithVideoEnabled:YES];

// camera with precise quality, position and video parameters.
self.camera = [[LLSimpleCamera alloc] initWithQuality:AVCaptureSessionPresetHigh
                                             position:LLCameraPositionRear
                                         videoEnabled:YES];
// attach to the view
[self.camera attachToViewController:self withFrame:CGRectMake(0, 0, screenRect.size.width, screenRect.size.height)];

捕获照片

// capture
[self.camera capture:^(LLSimpleCamera *camera, UIImage *image, NSDictionary *metadata, NSError *error) {
    if(!error) {    
        // we should stop the camera, since we don't need it anymore. We will open a new vc.
        // this very important, otherwise you may experience memory crashes
        [camera stop];

        // show the image
        ImageViewController *imageVC = [[ImageViewController alloc] initWithImage:image];
        [self presentViewController:imageVC animated:NO completion:nil];
       }
}];

开始录制视频

// start recording
NSURL *outputURL = [[[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"test1"] URLByAppendingPathExtension:@"mov"];
[self.camera startRecordingWithOutputUrl:outputURL didRecord:^(LLSimpleCamera *camera, NSURL *outputFileUrl, NSError *error) {
    VideoViewController *vc = [[VideoViewController alloc] initWithVideoUrl:outputFileUrl];
    [self.navigationController pushViewController:vc animated:YES];
}];

停止录制视频

[self.camera stopRecording];

更改焦点层和动画

- (void)alterFocusBox:(CALayer *)layer animation:(CAAnimation *)animation;

添加相机控件

您必须添加自己的相机控件(闪光灯、相机切换等)。只需将控件添加到LLSimpleCamera所依附的视图中。您可以在示例项目中看到一个完整的相机示例。下载并在您的设备上尝试。

停止和重启相机

在捕获块被触发后,或者在某些地方的父控制器中的 viewWillDisappear 内,您决不应忘记停止相机,以确保在不需要时应用不会使用相机。您可以通过调用 -start() 来重用相机。因此,将 -start() 放置在 -viewWillAppear 或其他相关方法中可能是个好主意。

联系方式

Ömer Faruk Gül

个人网站

[email protected]

版本历史

版本 3.0.0

  • 增加了视频录制功能
  • 类重构程度很高

版本 2.2.0

  • 支持相机权限,如果用户没有授权权限,将触发 onError。
  • 修改了相机闪光灯方法。现在您必须调用 - (BOOL)updateFlashMode:(CameraFlash)cameraFlash;
  • 将 cameraFlash 和 cameraPosition 属性名称简化为: flashposition
  • 添加了对设备方向的支持,以防您的 vc 方向被锁定,但您希望无论何种情况都能使用设备方向。

版本 2.1.1

  • 在拍照后立即冻结屏幕,以获得更好的用户体验。

版本 2.1.0

  • 在 -capture 方法中添加了额外的参数 exactSeenImage:(BOOL)exactSeenImage,以便轻松获取屏幕上的确切看到的图像,而不是原始未裁剪的图像。默认值是 NO。
  • 修复了捕获方法中的方向错误。

版本 2.0.0

对内部结构和 API 做了重大的改变。

  • 添加了点击对焦功能(如果不喜欢默认图层和动画,则是完全可定制的)
  • 删除了代理并添加了块
  • 界面得到了显著的改进

版本 1.1.1

  • 修复了如果多次调用 -stop() 可能导致崩溃的情况

版本 1.1.0

  • 修复了有时在拍照后导致崩溃的问题。
  • 改进了代码结构,didChangeDevice 代理现在也针对第一个默认设备激发。