มีวิธีใดในการทดสอบกล้อง iPhone ในเครื่องจำลองโดยไม่ต้องปรับใช้บนอุปกรณ์หรือไม่? นี่ดูน่าเบื่อชะมัด
มีวิธีใดในการทดสอบกล้อง iPhone ในเครื่องจำลองโดยไม่ต้องปรับใช้บนอุปกรณ์หรือไม่? นี่ดูน่าเบื่อชะมัด
คำตอบ:
มีคุณสมบัติเฉพาะของอุปกรณ์หลายอย่างที่คุณต้องทดสอบบนอุปกรณ์ แต่ก็ไม่ยากไปกว่าการใช้เครื่องจำลอง เพียงสร้างเป้าหมายการดีบักสำหรับอุปกรณ์และปล่อยให้เชื่อมต่อกับคอมพิวเตอร์
รายการการดำเนินการที่ต้องใช้อุปกรณ์จริง:
ฉันต้องการทดสอบภาพซ้อนทับแบบกำหนดเองสำหรับรูปภาพ การวางซ้อนจำเป็นต้องปรับตามขนาด / ความละเอียดของภาพ
ฉันเข้าหาสิ่งนี้ในลักษณะที่คล้ายกับคำแนะนำจาก Stefan ฉันตัดสินใจที่จะเขียนโค้ดตอบกลับกล้องแบบ "หลอกๆ"
เมื่อเครื่องจำลองกำลังทำงานฉันรันโค้ดจำลองนี้แทนมาตรฐาน "captureStillImageAsynchronouslyFromConnection"
ในโค้ดจำลองนี้ฉันสร้าง "ภาพถ่ายสีดำ" ที่มีความละเอียดที่จำเป็นแล้วส่งผ่านท่อเพื่อให้ได้รับการปฏิบัติเหมือนภาพถ่ายทั่วไป โดยพื้นฐานแล้วให้ความรู้สึกของกล้องที่เร็วมาก
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);
ภาพด้านบนเทียบเท่ากับภาพถ่าย 8MP ที่อุปกรณ์ส่วนใหญ่ในปัจจุบันส่งออกมา แน่นอนในการทดสอบความละเอียดอื่น ๆ คุณจะเปลี่ยนขนาด
ไม่ (เว้นแต่พวกเขาจะเพิ่มวิธีการทำใน 3.2 ยังไม่ได้ตรวจสอบ)
เหตุผลทั่วไปสำหรับความจำเป็นในการเข้าถึงกล้องคือการสร้างภาพหน้าจอสำหรับ AppStore
เนื่องจากกล้องไม่สามารถใช้งานได้ในเครื่องจำลองเคล็ดลับที่ดี (สิ่งเดียวที่ฉันรู้) คือการปรับขนาดมุมมองของคุณตามขนาดที่คุณต้องการเพียงแค่เวลาในการถ่ายภาพหน้าจอ คุณจะครอบตัดในภายหลัง
แน่นอนว่าคุณต้องมีอุปกรณ์ที่มีหน้าจอใหญ่กว่านี้
iPad เหมาะอย่างยิ่งในการทดสอบเลย์เอาต์และสร้างสแนปชอตสำหรับอุปกรณ์ทั้งหมด ภาพหน้าจอสำหรับ iPhone6 + จะต้องยืดออกเล็กน้อย (ปรับขนาดได้ 1,078125 - ไม่ใช่เรื่องใหญ่…)
ลิงค์ที่ดีไปยังอุปกรณ์ iOS ความละเอียดอ้างอิงอย่างรวดเร็ว: http://www.iosres.com/
แก้ไข: ในโปรเจ็กต์ล่าสุดที่ใช้ตัวควบคุมมุมมองกล้องที่กำหนดเองฉันได้แทนที่ AVPreview ด้วย UIImageView ในเป้าหมายที่ฉันใช้เพื่อเรียกใช้ในโปรแกรมจำลองเท่านั้น ด้วยวิธีนี้ฉันสามารถสร้างภาพหน้าจออัตโนมัติสำหรับการอัปโหลด iTunesConnect โปรดทราบว่าปุ่มควบคุมกล้องไม่ได้อยู่ในภาพซ้อนทับ แต่อยู่ในมุมมองเหนือภาพตัวอย่างกล้อง
คำตอบของ @Craig ด้านล่างอธิบายถึงวิธีการอื่นที่ฉันพบว่าค่อนข้างฉลาด - มันยังใช้งานได้กับการซ้อนทับของกล้องซึ่งขัดแย้งกับของฉัน
เพิ่งพบ repo บนคอมไพล์ที่ช่วยจำลองการทำงานของกล้องบน iOS Simulator ด้วยรูปภาพวิดีโอหรือกล้อง MacBook ของคุณ
ฉันไม่เคยลอง แต่คุณสามารถลองได้! iCimulator
ฉันเขียนมุมมองทดแทนเพื่อใช้ในโหมดดีบัก ใช้ API เดียวกันและทำการโทรกลับของผู้รับมอบสิทธิ์เดียวกัน ในกรณีของฉันฉันส่งคืนภาพสุ่มจากชุดทดสอบของฉัน เป็นเรื่องเล็กน้อยที่จะเขียน