2012-05-17 29 views
6

Tôi đang sử dụng UIImagePickerController để chụp ảnh. Tôi đang sử dụng đoạn mã sau:UIImagePickerController mang lại cho tôi bản xem trước màu đen

UIImagePickerController* UIPicker = [[UIImagePickerController alloc] init]; 
UIPicker.delegate = self; 
UIPicker.sourceType= UIImagePickerControllerSourceTypeCamera; 
[UIPicker setCameraCaptureMode:UIImagePickerControllerCameraCaptureModePhoto]; 
UIPicker.allowsEditing=NO; 
[self presentModalViewController:UIPicker animated:YES]; 
[UIPicker release]; 

Vấn đề là ngẫu nhiên tôi nhận được bản xem trước như một màn hình màu đen, nếu nó xảy ra một lần sau đó nó không bao giờ phục hồi cho đến khi chúng ta giết và khởi động lại ứng dụng.

Tôi nhận được hình ảnh chính xác từ UIImagePickerControllerDelegate nhưng tôi gặp sự cố này khi xem trước khi UIImagePickerController có máy ảnh làm loại nguồn.

Trả lời

0

Nếu điều đó xảy ra ngẫu nhiên, tôi nghi ngờ đó là vấn đề về bộ nhớ. Hình ảnh từ UIImagePickerController khá lớn. Nếu bạn quản lý để thao tác hình ảnh bằng cách nào đó, bộ nhớ của bạn có thể không có khả năng hỗ trợ điều đó.

0

Tôi đã gặp phải sự cố tương tự với bản xem trước máy ảnh tối nay và nguyên nhân gốc rễ của sự cố là ... mã hoàn toàn không liên quan trong đại biểu ứng dụng đã sửa đổi giao diện người dùng trên hàng đợi nền.

Rõ ràng, không mất nhiều thời gian để giải quyết các biến nội bộ mong manh mà AVFoundation dựa vào.

Khi tôi đã loại bỏ các cuộc gọi đến mã giao diện người dùng khỏi hàng đợi nền, xem trước máy ảnh trở nên nhanh chóng và đáng tin cậy.

Bài viết này (http://www.cocoanetics.com/2013/02/uiview-background-queue-debugging/) rất hữu ích khi theo dõi vị trí giao diện người dùng bị sửa đổi từ hàng đợi nền.

Tôi cũng khuyên bạn nên xem câu trả lời cho câu hỏi này (iOS 7 UIImagePickerController has black preview)

Các vấn đề liên quan