2010-11-03 15 views
10

Hola a todos Estoy tratando de hacer una aplicación de cámara. Estoy haciendo esto comoUiimagepicker Para mostrar la cámara

picker.sourceType = UIImagePickerControllerSourceTypeCamera; 

donde selector es el objeto de UIimagepicker Controller.

Pero cuando se ejecuta el código, la aplicación termina mostrando el error.

Terminación de aplicación debido a excepción no detectada 'NSInvalidArgumentException', razón: 'Fuente tipo 1 no disponible'

estoy usando esto en simulador. Sé que no es posible verificar la cámara en el simulador, pero podemos probar eso. Creo que podría ser porque la cámara no está disponible por eso está terminando. Pero vi una aplicación con el mismo código pero que se estaba ejecutando en el simulador, simplemente mostrando la vista de la cámara. Solo ayúdame a resolver este problema. Y además ¿cómo puedo poner mi vista personalizada a la cámara en esa aplicación?

Respuesta

21

Debe verificar si el dispositivo tiene cámara disponible antes de configurar el tipo de fuente.

Lo siguiente puede verificar si el dispositivo tiene cámara disponible.

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { 
} 

No se puede verificar la funcionalidad de la cámara desde el simulador. Puede asignar UIImagePickerControllerSourceTypePhotoLibrary como el tipo de fuente para probar en el simulador.

+0

Gracias Chaitanya he hecho eso, pero me preguntaba que cómo que la aplicación estaba mostrando vista de cámara en el simulador, pero no pudo hacer clic ya que el hardware era necesario. – Sabby

+0

el sistema operativo requiere un controlador para operar el dispositivo externo. iOS no tiene el controlador para la cámara de la MacBook. –

0

pongo a continuación código donde Excepción occures. Recuerde que necesita para implementar navigationController

if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { 
      UIAlertController *alertView = [UIAlertController alertControllerWithTitle:@"ERROR" message:@"No Camera Avalible" preferredStyle:UIAlertControllerStyleAlert]; 

     UIAlertAction *ok = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) { 
      [self dismissViewControllerAnimated:alertView completion:nil]; 
     }]; 
     [alertView addAction:ok]; 
     [self.navigationController presentViewController:alertView animated:YES completion:nil]; 
    } 
1

Swift 2,2

if UIImagePickerController.isSourceTypeAvailable(.Camera) { 
    imagePicker.delegate = self 
    imagePicker.sourceType = .Camera 
    presentViewController(imagePicker, animated: true, completion: nil) 
} else { 
    print("The device has no camera") 
} 

fotos Guardado álbum

if UIImagePickerController.isSourceTypeAvailable(.SavedPhotosAlbum) { 
    imagePicker.delegate = self 
    imagePicker.sourceType = .SavedPhotosAlbum 
    imagePicker.allowsEditing = false 
    self.presentViewController(imagePicker, animated: true, completion: nil) 
} 
Cuestiones relacionadas