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

iOS NativeJS调用翻译

分类:Native.js
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");
2016-04-13 10:43 负责人:无 分享
已邀请:

该问题目前已经被锁定, 无法添加新回复