- 论坛徽章:
- 0
|
本帖最后由 wyfem 于 2015-07-30 13:06 编辑
AVCaptureSession *session = [[AVCaptureSession alloc] init];
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
NSError *error = nil;
AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device
error:&error];
if (input) {
[session addInput:input];
} else {
NSLog(@"Error: %@", error);
}
AVCaptureMetadataOutput *output = [[AVCaptureMetadataOutput alloc] init];
//设置扫码支持的编码格式(如下设置条形码和二维码兼容)
[output setMetadataObjectTypes[AVMetadataObjectTypeQRCode,AVMetadataObjectTypeEAN13Code, AVMetadataObjectTypeEAN8Code, AVMetadataObjectTypeCode128Code]];
[output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];
[session addOutpututput];
[session startRunning];
[Objective-C]代码- //
- // ViewController.m
- // QRCode
- //
- // Created by chenchen on 15/7/30.
- // Copyright (c) 2015年 BSY. All rights reserved.
- //
- #import <AVFoundation/AVFoundation.h>
- #import "ViewController.h"
- @interface ViewController ()<AVCaptureMetadataOutputObjectsDelegate>
-
- @end
-
- @implementation ViewController
-
- - (void)viewDidLoad {
- [super viewDidLoad];
-
-
-
- AVCaptureSession *session = [[AVCaptureSession alloc] init];
- AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
- NSError *error = nil;
-
- AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device
- error:&error];
- if (input) {
- [session addInput:input];
- } else {
- NSLog(@"Error: %@", error);
- }
- AVCaptureMetadataOutput *output = [[AVCaptureMetadataOutput alloc] init];
- //设置扫码支持的编码格式(如下设置条形码和二维码兼容)
- [output setMetadataObjectTypes:@[AVMetadataObjectTypeQRCode,AVMetadataObjectTypeEAN13Code, AVMetadataObjectTypeEAN8Code, AVMetadataObjectTypeCode128Code]];
- [output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];
- [session addOutput:output];
- [session startRunning];
- }
-
- #pragma mark - AVCaptureMetadataOutputObjectsDelegate
- - (void)captureOutput:(AVCaptureOutput *)captureOutput
- didOutputMetadataObjects:(NSArray *)metadataObjects
- fromConnection:(AVCaptureConnection *)connection
- {
- NSString *QRCode = nil;
- for (AVMetadataObject *metadata in metadataObjects) {
- if ([metadata.type isEqualToString:AVMetadataObjectTypeQRCode]) {
- // This will never happen; nobody has ever scanned a QR code... ever
- QRCode = [(AVMetadataMachineReadableCodeObject *)metadata stringValue];
- break;
- }
- }
-
- NSLog(@"QR Code: %@", QRCode);
- }
- - (void)didReceiveMemoryWarning {
- [super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
- }
-
- @end
复制代码 |
|