【问题标题】:Custom ios camera shutter not opening?自定义ios相机快门打不开?
【发布时间】:2013-03-14 14:09:35
【问题描述】:

我在自定义相机中尝试过 UIImagePickerController,当应用程序退出或我要调用 safari 时,相机快门未打开,我使用了以下代码。

 -(IBAction)cameraAction:(id)sender
{

   NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
   [defaults setValue:@"rear" forKey:@"rearcamera"];
   [defaults synchronize];
   NSLog(@"hai App %@",[defaults valueForKey:@"closeApp"]);

   dispatch_async(dispatch_get_main_queue(), ^{
       [cameraBut setSelected:NO];
       self.picker = [[UIImagePickerController alloc] init];
       self.picker.sourceType = UIImagePickerControllerSourceTypeCamera;
       self.picker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
       self.picker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
       self.picker.showsCameraControls = NO;
       self.picker.navigationBarHidden = YES;
       self.picker.toolbarHidden = YES;
       self.picker.wantsFullScreenLayout = YES;



   });


}

【问题讨论】:

  • "当应用程序退出或我要调用 safari 时,相机快门未打开," -- 你真正想要做什么,没有得到你的问题?
  • 我需要在应用程序运行时再次打开相机快门。

标签: iphone ios5 camera uiimagepickercontroller


【解决方案1】:

不要在 .h 文件中声明选择器。按钮操作中的简单声明和使用,工作完成后释放。

-(IBAction)cameraAction:(id)sender
{

   NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
   [defaults setValue:@"rear" forKey:@"rearcamera"];
   [defaults synchronize];
   NSLog(@"hai App %@",[defaults valueForKey:@"closeApp"]);

   dispatch_async(dispatch_get_main_queue(), ^{
       [cameraBut setSelected:NO];
      UIImagePickerController *picker = [[UIImagePickerController alloc] init];
      picker.sourceType = UIImagePickerControllerSourceTypeCamera;
      picker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
      picker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
      picker.showsCameraControls = NO;
      picker.navigationBarHidden = YES;
      picker.toolbarHidden = YES;
      picker.wantsFullScreenLayout = YES;

      [self presentViewController:picker animated:YES completion:nil];

   });


}

【讨论】:

  • 嗨@Siba prasad Hota 我试过但没有工作。我不知道我用我的代码穿了什么。然后如何计算相机拍摄的图像比率。然后上传到服务器然后显示相同的相机拍摄图像分辨率。
【解决方案2】:

根据你的解释,我猜你只需要打开相机快门,你的相机就可以正常工作了。

所以我建议你添加一个动画,模拟相机快门打开。

这是代码,这是CALayer的核心动画:

CATransition *shutterAnimation = [CATransition animation];
     [shutterAnimation setDelegate:self];
     [shutterAnimation setDuration:0.6];

     shutterAnimation.timingFunction = UIViewAnimationCurveEaseInOut;
     [shutterAnimation setType:@"cameraIris"];
     [shutterAnimation setValue:@"cameraIris" forKey:@"cameraIris"];
     CALayer *cameraShutter = [[CALayer alloc]init];
     [cameraShutter setBounds:CGRectMake(0.0, 0.0, 320.0, 425.0)];
     [self.layer addSublayer:cameraShutter];
     [self.layer addAnimation:shutterAnimation forKey:@"cameraIris"];

这不是确切的解决方案,但这是解决方法之一。

希望这将帮助您实现您的要求。

【讨论】:

  • 嗨,这是问题。自定义相机工作正常,但是当我在 google+ 中使用共享图像时,时间应用程序是背景(我的意思是最小化)然后重新打开时间快门未打开的应用程序(我的意思是 shuck )。如何避免快门脱落问题。请参阅此链接stackoverflow.com/questions/8058998/…
猜你喜欢
  • 2013-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多