var ios_session, ios_output, ios_input, ios_device, ios_preview;
// self.device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
var AVCaptureDevice = plus.ios.importClass("AVCaptureDevice");
ios_device = AVCaptureDevice.defaultDeviceWithMediaType("AVMediaTypeVideo");
// self.input = [AVCaptureDeviceInput deviceInputWithDevice:self.device error:nil];
var AVCaptureDeviceInput = plus.ios.importClass("AVCaptureDeviceInput");
ios_input = plus.ios.invoke(AVCaptureDeviceInput, "deviceInputWithDevice:error", ios_device, null);
// self.output = [[AVCaptureMetadataOutput alloc]init];
// [self.output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];
ios_output = plus.ios.newObject("AVCaptureMetadataOutput");
plus.ios.invoke(ios_output, "init");
plus.ios.invoke(ios_output, "setMetadataObjectsDelegate", plus.webview.currentWebview()); // 这个用webview好像不对?
// plus.ios.invoke(ios_output, "setMetadataObjectsDelegate:queue", self, plus.ios.invoke(null, "dispatch_get_main_queue")); // 用此句会闪退,queue:dispatch_get_main_queue()应该要怎样翻译呢
// self.session = [[AVCaptureSession alloc]init];
ios_session = plus.ios.newObject("AVCaptureSession");
// [self.session setSessionPreset:([UIScreen mainScreen].bounds.size.height<500)?AVCaptureSessionPreset640x480:AVCaptureSessionPresetHigh]; // 使用iOS常量的应该怎样翻译
plus.ios.invoke(ios_session, "setSessionPreset", plus.ios.import("AVCaptureSessionPresetHigh"));
// [self.session addInput:self.input];
// [self.session addOutput:self.output];
plus.ios.invoke(ios_session, "addInput", ios_input);
plus.ios.invoke(ios_session, "addOutput", ios_output);
// self.output.metadataObjectTypes=@[AVMetadataObjectTypeQRCode];
ios_output.metadataObjectTypes = plus.ios.import("AVMetadataObjectTypeQRCode");
// self.preview = [AVCaptureVideoPreviewLayer layerWithSession:self.session];
var AVCaptureVideoPreviewLayer = plus.ios.importClass("AVCaptureVideoPreviewLayer");
ios_preview = plus.ios.invoke(AVCaptureVideoPreviewLayer, "layerWithSession", ios_session);
// self.preview.videoGravity = AVLayerVideoGravityResizeAspectFill;
// self.preview.frame = [UIScreen mainScreen].bounds;
// [self.view.layer insertSublayer:self.preview atIndex:0];
var mainScreen = plus.ios.import('mainScreen');
ios_preview.videoGravity = plus.ios.import("AVCaptureSessionPresetHigh");
ios_preview.frame = plus.ios.invoke(mainScreen, "bounds");
plus.ios.invoke(plus.webview.currentWebview().layer, "insertSublayer:atIndex", ios_preview, 0);
plus.ios.invoke(ios_session, "startRunning");

coolbf
- 发布:2016-04-13 10:43
- 更新:2016-04-13 10:43
- 阅读:1435