iOS二維碼掃描
先上圖(詳細的都在keynote畫出來了>_<
圖永遠都是最清晰明瞭的。下邊說說注意事項:
//如果沒獲得許可權
NSString *mediaType = AVMediaTypeVideo;
AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:mediaType];
if(authStatus == AVAuthorizationStatusRestricted || authStatus == AVAuthorizationStatusDenied){
[AlertView alertWithTitle:nil message:@"親,請先到系統“隱私”中開啟相機許可權哦!" buttonTitle:@"知道啦!" confrimBlock:^{
[self.navigationController popViewControllerAnimated:YES];
}];
return;
}
_device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
_input = [AVCaptureDeviceInput deviceInputWithDevice:self.device error:nil];
_output = [[AVCaptureMetadataOutput alloc]init];
[_output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];
_session = [[AVCaptureSession alloc]init];
[_session setSessionPreset:AVCaptureSessionPresetHigh];
if ([_session canAddInput:self.input]) {
[_session addInput:self.input];
}
if ([_session canAddOutput:self.output]) {
[_session addOutput:self.output];
}
// 條碼型別 AVMetadataObjectTypeQRCode
_output.metadataObjectTypes =@[AVMetadataObjectTypeQRCode];
// Preview
_preview =[AVCaptureVideoPreviewLayer layerWithSession:_session];
_preview.videoGravity =AVLayerVideoGravityResize;
_preview.frame =self.view.layer.bounds;
[self.view.layer insertSublayer:_preview atIndex:0];
[_session startRunning];
//設定掃描輸出口的檢視捕捉範圍
[_output setRectOfInterest:CGRectMake(cropRect.origin.y / screenHeight,
cropRect.origin.x / screenWidth,
cropRect.size.height / screenHeight,
cropRect.size.width / screenWidth)];
最後實現代理方法:
#pragma mark AVCaptureMetadataOutputObjectsDelegate
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection{
NSString *stringValue;
if ([metadataObjects count] >0){
//停止掃描
[_session stopRunning];
AVMetadataMachineReadableCodeObject * metadataObject = [metadataObjects safeObjectAtIndex:0];
stringValue = metadataObject.stringValue;
}else{
//掃碼失敗
[self.session startRunning];
return;
}
}
相關文章
- iOS中二維碼掃描iOS
- IOS 使用 ZbarSDK 二維碼掃描iOS
- iOS 掃描二維碼/條形碼iOS
- iOS 使用CIDetector掃描相簿二維碼、原生掃描iOSIDE
- iOS開發之掃描二維碼iOS
- ios打包 蒲公英生成二維碼掃描下載iOS
- iOS開發-原生二維碼的掃描和生成iOS
- Android 二維碼掃描和生成二維碼Android
- 掃描二維碼登入思路
- 安卓自定義二維碼掃描安卓
- iOS 掃描二維碼(ZBarSDK)遇到的坑~解決方法iOS
- ubuntu安裝zbar二維碼掃描Ubuntu
- Android實現掃描二維碼Android
- Android二維碼生成與掃描Android
- React Native 實現二維碼掃描React Native
- cocos2dx-lua在ios上實現生成及掃描二維碼iOS
- 簡單易用的二維碼掃描工具:QR Capture for MacAPTMac
- 最完善,快速的 react-native 二維碼掃描React
- 使用 Swift 建立簡單的二維碼掃描應用Swift
- PHP掃描圖片轉點陣 二維碼轉點陣PHP
- Android----二維碼掃描、生成、相簿識別(16號)Android
- Win10系統怎麼識別掃描二維碼Win10
- 使用ionic2開發一個二維碼掃描功能
- Swift4如何掃描二維碼瞭解一下Swift
- 自定義 React Native 二維碼掃描元件(簡單,易用!)React Native元件
- Google zxing實現二維碼掃描完美解決方案Go
- 微信小程式掃描普通二維碼開啟小程式的方法微信小程式
- 全棧工程師之路-React Native之掃描二維碼全棧工程師React Native
- H5端呼起攝像頭掃描二維碼並解析H5
- 智慧公安二維碼報警系統研發解決方案-隨時隨地掃描二維碼
- 掃二維碼連wifiWiFi
- sonar(二)掃描配置
- 反編譯某軟體直接進入微信二維碼掃描介面編譯
- PC客戶端Winform掃描微信二維碼登入網站Navite客戶端ORM網站Vite
- iOS 11 相機二維碼掃描存在漏洞 會導致使用者訪問惡意網站iOS網站
- vue專案中生成二維碼,手機掃描後跳轉下載Vue
- XQRCode 一個非常方便實用的二維碼掃描、解析、生成庫
- Scanlife:2012年Q1二維碼掃描資料