自定义相机(一) -- 预览视频流

实现功能:

  自定义视频流,实时预览。

运行环境:

  1.  XCODE 5.1.1

  2.  真机(IPHONE5  ,  IOS6.1.4)


#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h> //导入 - "视频流"

@interface MCViewController : UIViewController

@property (strong, nonatomic) AVCaptureSession * captureSession; //AVCaptureSession实例
@property (strong, nonatomic) AVCaptureDeviceInput * videoInput; //持有视频输入实例

@end


#import "MCViewController.h"

@interface MCViewController ()

@end

@implementation MCViewController

- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];

//开始扑捉会话
[self.captureSession startRunning];
}

- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];

//停止扑捉会话
[self.captureSession stopRunning];
}

- (void)viewDidLoad
{
[super viewDidLoad];

//1.1 创建AVCaptureSession
self.captureSession = [[AVCaptureSession alloc] init];
//1.2 指定输入设备。这里使用后摄像头。
AVCaptureDevice * device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
//1.3 创建AVCaptureDeviceInput的实例,将所选设备作为扑捉会话的输入。
// 此外,在将是其添加到回话前请创建好输入,这里需要做个检查。
NSError * error = nil;
self.videoInput = [AVCaptureDeviceInput deviceInputWithDevice:device error:&error];
if (self.videoInput) {
[self.captureSession addInput:self.videoInput];
}
else
{
NSLog(@"input error : %@", error);
}

//2. 创建预览层
AVCaptureVideoPreviewLayer * previewLayer = [AVCaptureVideoPreviewLayer layerWithSession:self.captureSession];
UIView * aView = self.view;
previewLayer.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
[aView.layer addSublayer:previewLayer];

}

@end

自定义相机(一) -- 预览视频流

时间: 2025-01-02 03:39:37

自定义相机(一) -- 预览视频流的相关文章

自定义相机(三) -- 视频流数据 AND 预览 拍照 变焦

实现功能: 1. 视频流数据 2. 预览和拍照变焦, 所见即所得. 运行环境: 1.  XCODE 5.1.1 2.  真机(IPHONE5  ,  IOS6.1.4) #import <UIKit/UIKit.h> #import <AVFoundation/AVFoundation.h> //导入 - "视频流" @interface MCViewController : UIViewController<AVCaptureVideoDataOutpu

android自定义view无法预览

自定义的view在eclipse预览时报错 根据eclispe中提示Tip: Use View.isInEditMode() in your custom views to skip code when shown in Eclipse,定位到出错代码,将造成此错误的代码行用 if(!isInEditMode()){ //造成错误的代码段 } 包起来,这样在Eclipse中显示时将跳过此代码段而不再出现错误,修改后如下 修改后如果你代码中的变量定义为final类型,会出现The blank fi

Android Camera API/Camera2 API 相机预览及滤镜、贴纸等处理

Android Lollipop 增加了Camera2 API,并将原来的Camera API标记为废弃了.相对原来的Camera API来说,Camera2是重新定义的相机 API,也重构了相机 API 的架构.初看之下,可能会感觉Camera2使用起来比Camera要复杂,然而使用过后,你也许就会喜欢上使用Camera2了.无论是Camera还是Camera2,当相机遇到OpenGL就比较好玩了. 问题及思路 Camera的预览比较常见的是使用SurfaceHolder来预览,Camera2

调用相机,选择图片上传,带预览功能、图片压缩、相机文字设置、

摘要 iOS调用相机,iOS调用相册,保存至应用程序沙盒,高保真压缩图片,并有点击放大预览,再次点击缩回至原大小,带动画效果,附源码下载地址. Xcode版本4.5.1 类库ios6.0 IOS调用相机 图片预览 图片上传 压缩图片 模拟器添加图片 目录[-] 判断是否支持相机,跳转到相机或相册界面 七.保存图片 高保真压缩图片方法 八.实现点击图片预览功能,滑动放大缩小,带动画 ps:模拟器添加图片 源码下载地址: 一.新建工程 二.拖控件,创建映射 三.在.h中加入delegate ? 1

Android调用系统相机、自定义相机、处理大图片

Android调用系统相机和自定义相机实例 本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显示出来,该例子也会涉及到Android加载大图片时候的处理(避免OOM),还有简要提一下有些人SurfaceView出现黑屏的原因. Android应用拍照的两种方式,下面为两种形式的Demo展示出来的效果.    知识点: 一.调用系统自带的相机应用 二.自定义我们自己的拍照界面 三.关于计算机解析图片原理(如何正确加载图片到Android应用中) 所需

Android自定义相机超详细讲解

Android自定义相机超详细讲解 转载请标明出处: http://blog.csdn.net/vinicolor/article/details/49642861: 由于网上关于Android自定义相机的文章写得不是太详细,Google官方的文档又说得不太容易理解,所以今天我来详细讲解一下Android自定义相机. 这篇文章主要写给一些刚刚接触Android的那些看官方API困难以及不太了解Android机制的同学们,所以熟练开发者可以绕道了. 最近在使用Camera类的时候发现居然被弃用了,

AVFoundation的自定义相机

最近由于工作项目的功能需求,需要用到AVFoundation来自定义相机的功能.所以花了点时间去研究了一下. 在网上可以找到很多实用AVFoundation的自定义相机自定义相机的博文,虽然功能的确是完成了,但是距离我的目标还是有不少的差距的. 首先声明,预览的照片是正方形的,拍摄结果最后得到的图片也是正方形的,再好多的博文上我都没有找到该怎么设置才可以得到正方形的图片. 我是首先拍一张照片,然后在使用图片裁剪的方式得到的正方行图片.好了,接下来就让我们开始吧. 首先要了解这几个类的用处 /**

相机 视频流数据--预览 拍照 变焦

转载自 http://www.cnblogs.com/iCodePhone/p/3785283.html 实现功能: 1. 视频流数据 2. 预览和拍照变焦, 所见即所得. 运行环境: 1.  XCODE 5.1.1 2.  真机(IPHONE5  ,  IOS6.1.4) #import <UIKit/UIKit.h> #import <AVFoundation/AVFoundation.h> //导入 - "视频流" @interface MCViewCon

Android自定义照相机 预览拍照 切换前后置摄像头

Android提供了Camera来控制拍照,步骤如下:(1)调用Camera的open()方法打开相机.(2)调用Camera的getParameters()获取拍照参数,该方法返回一个Cmera.Parameters对象.(3)调用Camera.Parameters对象对照相的参数进行设置.(4)调用Camera的setParameters(),并将Camera.Parameters对象作为参数传入,这样就可以对拍照进行参数控制,Android2.3.3以后不用设置.(5)调用Camerade