Có cách nào để kiểm tra camera iPhone trong giả lập mà không cần phải triển khai trên thiết bị không? Điều này có vẻ vô cùng tẻ nhạt.
Có cách nào để kiểm tra camera iPhone trong giả lập mà không cần phải triển khai trên thiết bị không? Điều này có vẻ vô cùng tẻ nhạt.
Câu trả lời:
Có một số tính năng cụ thể của thiết bị mà bạn phải kiểm tra trên thiết bị, nhưng không khó hơn việc sử dụng trình mô phỏng. Chỉ cần xây dựng một mục tiêu gỡ lỗi cho thiết bị và để nó gắn vào máy tính.
Danh sách các hành động yêu cầu thiết bị thực tế:
Tôi cần kiểm tra một số lớp phủ tùy chỉnh cho ảnh. Các lớp phủ cần được điều chỉnh dựa trên kích thước / độ phân giải của hình ảnh.
Tôi tiếp cận vấn đề này theo cách tương tự như gợi ý từ Stefan, tôi quyết định viết mã phản hồi camera "giả".
Khi trình mô phỏng đang chạy, tôi thực thi mã giả này thay vì "captureStillImageAsynchronouslyFromConnection" tiêu chuẩn.
Trong mã giả này, tôi xây dựng một "ảnh đen" có độ phân giải cần thiết và sau đó gửi nó qua pipelined để được xử lý như một bức ảnh bình thường. Về cơ bản cung cấp cảm giác của một máy ảnh rất nhanh.
CGSize sz = UIDeviceOrientationIsPortrait([[UIDevice currentDevice] orientation]) ? CGSizeMake(2448, 3264) : CGSizeMake(3264, 2448);
UIGraphicsBeginImageContextWithOptions(sz, YES, 1);
[[UIColor blackColor] setFill];
UIRectFill(CGRectMake(0, 0, sz.width, sz.height));
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *imageData = UIImageJPEGRepresentation(image, 1.0);
Hình ảnh trên tương đương với một bức ảnh 8MP mà hầu hết các thiết bị ngày nay gửi đi. Rõ ràng để kiểm tra các độ phân giải khác, bạn sẽ thay đổi kích thước.
Một lý do phổ biến cho nhu cầu truy cập máy ảnh là tạo ảnh chụp màn hình cho AppStore.
Vì máy ảnh không có sẵn trong trình mô phỏng, một mẹo hay (mẹo duy nhất mà tôi biết) là thay đổi kích thước chế độ xem của bạn ở kích thước bạn cần, chỉ là thời gian để chụp ảnh màn hình. Bạn sẽ cắt chúng sau.
Chắc chắn, bạn cần có thiết bị có màn hình lớn hơn.
IPad hoàn hảo để kiểm tra bố cục và tạo ảnh chụp nhanh cho tất cả các thiết bị. Ảnh chụp màn hình cho iPhone6 + sẽ phải kéo dài một chút (tỷ lệ 1,078125 - Không phải là vấn đề lớn…)
Liên kết tốt đến độ phân giải thiết bị iOS nhanh chóng tham khảo: http://www.iosres.com/
Chỉnh sửa: Trong một dự án gần đây, nơi bộ điều khiển chế độ xem camera tùy chỉnh được sử dụng, tôi đã thay thế AVPreview bằng một UIImageView trong một mục tiêu mà tôi chỉ sử dụng để chạy trong trình mô phỏng. Bằng cách này, tôi có thể tự động hóa ảnh chụp màn hình để tải lên iTunesConnect. Lưu ý rằng các nút điều khiển máy ảnh không nằm trong lớp phủ mà nằm trong chế độ xem trên bản xem trước máy ảnh.
Câu trả lời @Craig bên dưới mô tả một phương pháp khác mà tôi thấy khá thông minh - Nó cũng hoạt động với lớp phủ máy ảnh, ngược lại với tôi.
Tôi chưa bao giờ thử nó, nhưng bạn có thể thử! iCimulator
Tôi đã viết một dạng xem thay thế để sử dụng trong chế độ gỡ lỗi. Nó triển khai cùng một API và thực hiện các lệnh gọi lại ủy quyền giống nhau. Trong trường hợp của tôi, tôi đã thực hiện nó trả về một hình ảnh ngẫu nhiên từ bộ thử nghiệm của tôi. Khá tầm thường để viết.