我想在我的应用程序中使用QRCodeReader的功能。
我的应用程序是用 cocos2d-x 开发的。
我想我必须使用本机代码(Android/iOS)。
有一些方法可以在iOS中使用QRCodeReader。(ZXing,ZBar和iOS中的QR功能(http://www.renaudpradenc.com/?p=453))
但是我的代码无论如何都不能很好地工作。有人知道该怎么做吗?
它可能与这个问题无关,以下代码可以在iOS中调用相机。
void NativeLauncher::ShowCameraView(){
AppController *appController = (AppController *)[UIApplication sharedApplication].delegate;
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
[appController.viewController presentModalViewController:imagePicker animated:YES];
}
这是目标 C 中的一个很棒的教程:
如何使用AVFoundation框架扫描QR码
这是 Swift 中的一个:
二维码快速教程
抱歉回答晚了。
您可能会考虑 2 种策略,因为没有原生 cocos2d-x 对 QRCode 解码的支持。
1)开发Objective-C -> C++包装器
在 objc 端实现 AVFoundationFramework 方法,并为你将使用的图像解码帮助程序在 cocos2d-x 项目中的 C++ 包装类上调用这些方法(查看 Carlo 的 Google 游戏服务作为起点:https://github.com/cpinan)。
2) 使用任何 QRCode C++库
c++ 中有许多 QRCode 解码器,但您需要确保库针对您需要的架构。(例如 https://github.com/zxing/zxing)
希望对您有所帮助。干杯!
如果您的应用程序适用于 iOS 7 以上版本,您可以使用 AVCaptureMetadataOutputObjectsDelegate
在您的应用程序中实现 QRCode 扫描。如果您不知道如何实现AVCaptureMetadataOutputObjectsDelegate
这里有一个简单的实现。
https://github.com/dilumnavanjana/MetaQR
将 MetaQR.h 和 .m 文件添加到您的项目中并添加此代码,
MetaQR *metaQR = [[MetaQR alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
metaQR.delegate = self;
[self.view addSubview:metaQR];
此委托方法将为您提供QRCode的数据
-(void)capturedMetaOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection
对于 7.0 或以上的部署目标,您可以使用 AVFoundationFramework 读取二维码。
这是执行此操作的教程: http://www.ama-dev.com/iphone-qr-code-library-ios-7/
这个问题也在这里得到解答: iOS应用程序中的QR码扫描