10 Stimmen

Uiimagepicker Zum Anzeigen der Kamera

Hallo zusammen, ich versuche, eine Kamera-App zu erstellen. Ich tue dies als

picker.sourceType = UIImagePickerControllerSourceTypeCamera;

wobei picker das Objekt von UIimagepicker Controller ist.

Aber wenn der Code ausgeführt wird, bricht die Anwendung ab und zeigt den Fehler an.

Beenden der Anwendung aufgrund der nicht abgefangenen Ausnahme 'NSInvalidArgumentException', Grund: 'Source type 1 not available'.

Ich verwende dies im Simulator. Ich weiß, dass es nicht möglich ist, die Kamera im Simulator zu überprüfen, aber wir können das testen. Ich denke, es könnte daran liegen, dass die Kamera nicht verfügbar ist, weshalb der Vorgang abgebrochen wird. Aber ich habe eine Anwendung mit demselben Code gesehen, die im Simulator lief und nur die Kameraansicht zeigte. Helfen Sie mir einfach, wie ich dieses Problem lösen kann. Und darüber hinaus, wie kann ich meine benutzerdefinierte Ansicht auf die Kamera in dieser Anwendung setzen?

21voto

Chaitanya Punkte 2336

Sie müssen prüfen, ob das Gerät über eine Kamera verfügt, bevor Sie den Sourcetype einstellen.

Mit den folgenden Funktionen können Sie überprüfen, ob das Gerät über eine Kamera verfügt.

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])  {
}

Sie können die Kamerafunktionalität nicht von Ihrem Simulator aus überprüfen. Sie können zuweisen UIImagePickerControllerSourceTypePhotoLibrary als Quellentyp für den Test im Simulator.

1voto

Antoine Floury Punkte 981

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")
}

Album für gespeicherte Fotos

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

0voto

Pushp Punkte 1066

Setzen Sie unter den Code, wo die Ausnahme auftritt. Denken Sie daran, dass Sie navigationController implementieren müssen

 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];
    }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X