2010-11-03 26 views
10

Xin chào mọi người Tôi đang cố gắng tạo một ứng dụng camera. Tôi đang làm điều này làUiimagepicker Để hiển thị camera

picker.sourceType = UIImagePickerControllerSourceTypeCamera; 

trong đó bộ chọn là đối tượng của Trình điều khiển UIimagepicker.

Nhưng khi chạy mã thì ứng dụng sẽ chấm dứt hiển thị lỗi.

Chấm dứt ứng dụng do ngoại lệ còn tự do 'NSInvalidArgumentException', lý do: 'Nguồn loại 1 không có sẵn'

Tôi đang sử dụng này trên giả lập. Tôi biết rằng không thể kiểm tra camera ở chế độ mô phỏng, nhưng chúng tôi có thể kiểm tra điều đó. Tôi nghĩ rằng nó có thể là bởi vì máy ảnh không có sẵn đó là lý do tại sao nó chấm dứt. Nhưng tôi đã thấy một ứng dụng có cùng mã nhưng đã chạy trên trình mô phỏng, chỉ hiển thị chế độ xem máy ảnh. Chỉ cần giúp tôi cách giải quyết vấn đề này. Và hơn thế nữa tôi có thể đặt chế độ xem tùy chỉnh của mình vào máy ảnh trong ứng dụng đó như thế nào?

Trả lời

21

Bạn cần kiểm tra xem thiết bị có sẵn máy ảnh hay không trước khi thiết lập nguồn gốc.

Sau đây có thể kiểm tra xem thiết bị có máy ảnh không.

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { 
} 

Bạn không thể kiểm tra chức năng của máy ảnh từ trình mô phỏng. Bạn có thể gán UIImagePickerControllerSourceTypePhotoLibrary làm loại nguồn để kiểm tra trên trình mô phỏng.

+0

Cảm ơn Chaitanya Tôi đã làm điều đó, nhưng tôi đã tự hỏi rằng làm thế nào ứng dụng được hiển thị chế độ xem máy ảnh trên trình mô phỏng nhưng không thể nhấp vào dưới dạng phần cứng là cần thiết. – Sabby

+0

Hệ điều hành yêu cầu trình điều khiển để vận hành thiết bị bên ngoài. iOS không có trình điều khiển cho máy ảnh của MacBook. –

0

Đặt mã bên dưới nơi ngoại lệ xảy ra. Ghi Bạn cần phải thực hiện 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") 
} 

ảnh album lưu

if UIImagePickerController.isSourceTypeAvailable(.SavedPhotosAlbum) { 
    imagePicker.delegate = self 
    imagePicker.sourceType = .SavedPhotosAlbum 
    imagePicker.allowsEditing = false 
    self.presentViewController(imagePicker, animated: true, completion: nil) 
} 
Các vấn đề liên quan