BDCamera 0.2

BDCamera 0.2

测试已测试
语言语言 Obj-CObjective C
许可协议 MIT
发布最后发布2014年12月

Kirill Kunst 维护。



  • leoru

BDCamera 是一个简单的基于 AVFoundation 的视频和照片相机。

入门

Podfile

platform :ios, '7.0'
pod "BDCamera", "~> 0.1"

默认安装

将 BDCamera 文件夹拖到您的项目中。这个库必须启用 ARC。

用法

首先导入照片类

#import "BDStillImageCamera.h"

或视频类

#import "BDCamera.h"

为您的相机设置属性

@property (nonatomic, strong) BDStillImageCamera *camera;
// or
@property (nonatomic, strong) BDCamera *camera;

然后,您需要在控制器中一个 UIView 容器用于相机预览层。

UIView *cameraView = [[UIView alloc] initWithFrame:self.view.bounds];
self.camera = [[BDStillImageCamera alloc] initWithPreviewView:self preset:AVCaptureSessionPresetPhoto];
//or
self.camera = [[BDCamera alloc] initWithPreviewView:self preset:AVCaptureSessionPreset1280x720];

[self.camera startCameraCapture];

[self.view addSubview:cameraView];

照片相机

拍照

[self.camera captureImageWithCompletion:^(UIImage *capturedImage, NSError *error) {
        // your captured image
}];

视频相机

视频相机有一个委托,它会为您的录像视频提供一个 URL。您需要为相机设置 videoDelegate。

  self.camera.videoDelegate = self;

开始录制视频

NSURL *movieURL = //url for video output file
self.camera startRecordingWithURL:movieURL];

停止录制

[self.camera stopRecording];

视频输出将在 videoDelegate 中发送

- (void)didFinishRecordingToOutputFileAtURL:(NSURL *)outputFileURL error:(NSError *)error
{
    // here you can save your recorded video to Photos, for example.
    ALAssetsLibrary *assetLibrary = [[ALAssetsLibrary alloc] init];
    [assetLibrary writeVideoAtPathToSavedPhotosAlbum:outputFileURL completionBlock:^(NSURL *assetURL, NSError *error) {
        [[NSFileManager defaultManager] removeItemAtURL:url error:nil];
        [self showSuccessAlert];
    }];
}

使用 BDCamera 的示例包括在示例项目中。

一些有用的功能

更改录制 FPS

您可以通过切换输出 FPS 来录制慢动作视频。iPhone 5 的最大 FPS 为 60。iPhone 5S 的最大 FPS 为 120。iPhone 5S:使用 BDCamera 通过 AVCaptureMovieFileOutput 录制视频,您可以在相册中控制您的慢动作视频。

[self.camera switchFPS:120.f];

实时预览流

BDCamera 有实时预览的功能。

/*
    Every item in this array should be BDLivePreview for render live preview
 */
@property (nonatomic, strong) NSMutableArray *displayedPreviews;

BDLivePreview 是 GLKView 的一个子类。您可以使用 videoCamera EAGLContext 创建 BDLivePreview。

//You need to enable sample buffer capturing
[self.camera captureSampleBuffer:YES];

// then create preview views
CGRect frame = //some frame
BDLivePreview *preview = [[BDLivePreview alloc] initWithFrame:frame context:self.camera.eaglContext];
self.camera.displayedPreviews addObject:preview];
[self.view addSubview:preview];

就这样。我已经在 9 个实时预览上测试了 BDCamera。

维护者

许可协议

BDCamera 在 MIT 许可协议下可用。有关更多信息,请参阅 LICENSE 文件。