Thiết bị có thể gập lại và máy ảnh

Lưu ý: Trang này đề cập đến gói Camera2. Trừ phi ứng dụng của bạn yêu cầu các tính năng cấp thấp, cụ thể từ Camera2, bạn nên sử dụng CameraX. Cả CameraX và Camera2 đều hỗ trợ Android 5.0 (API cấp 21) trở lên.

Nhà phát triển máy ảnh có thể gặp phải những thách thức riêng khi làm việc trên các ứng dụng máy ảnh chạy trên thiết bị có thể gập lại. Không giống như điện thoại thông minh, trong đó một số giả định liên quan đến hướng màn hình, hướng máy ảnh và mặt trước thường hợp lệ, thiết bị có thể gập lại có thể có nhiều kiểu dáng, bố cục màn hình và cách kết hợp máy ảnh.

Điện thoại thông minh thường có máy ảnh theo hướng dọc khớp với màn hình. Tuy nhiên, điều này có thể không đúng đối với một số trạng thái có thể gập lại. Màn hình chưa mở có thể có một cảm biến theo hướng dọc và một cảm biến khác theo hướng ngang.

Nếu ứng dụng máy ảnh của bạn sử dụng SurfaceTexture hoặc quy trình kết xuất tuỳ chỉnh, hãy lưu ý đến hướng cảm biến máy ảnh.

Điều này đảm bảo rằng nội dung hiển thị luôn thẳng đứng và các pixel vẫn vuông, tránh bị kéo giãn theo hướng ngang hoặc dọc.

Hướng dẫn này cung cấp thông tin về những điều mà nhà phát triển Camera2 cần cân nhắc và các bước điều chỉnh chế độ kết xuất bản xem trước của máy ảnh cho nhiều trạng thái của thiết bị có thể gập lại.

Cách các nút chuyển trạng thái thiết bị ảnh hưởng đến máy ảnh

Thiết bị có thể gập lại có thể bao gồm:

  • Hai màn hình thực
  • Một số thiết bị máy ảnh thực

Các thiết bị này có thể hoạt động tuỳ thuộc vào trạng thái thiết bị. Để đơn giản hoá việc xử lý trạng thái thiết bị, một số thiết bị triển khai một máy ảnh logic bao gồm hai hoặc nhiều cảm biến thực.

Nếu nhà phát triển mở và bật tính năng truyền trực tuyến bản xem trước trên một thiết bị máy ảnh logic như vậy, thì máy ảnh sẽ tự động chuyển đổi giữa các thiết bị thực để phản hồi các trạng thái gập cụ thể.

Ví dụ: hãy xem xét một thiết bị có thể gập lại với hai màn hình:

  • Màn hình dọc thông thường ở trạng thái gập lại với camera mặt trước "ngoài" thực tế ở hướng dọc.
  • Màn hình có thể gập lại ở trạng thái mở ra với máy ảnh thực tế "bên trong" ở hướng ngang so với màn hình mở ra.

Khi người dùng gập hoặc mở thiết bị trong khi ứng dụng truyền trực tuyến từ máy ảnh logic phía trước, quá trình triển khai thiết bị có thể chuyển đổi giữa cảm biến vật lý bên trong và bên ngoài để phản hồi từng nút chuyển trạng thái thiết bị.

Nút chuyển màn hình có thể yêu cầu ứng dụng điều chỉnh giao diện người dùng.

Cùng với mọi điều chỉnh về giao diện người dùng, nhà phát triển có thể cần cân nhắc điều chỉnh cách bản xem trước của máy ảnh hiển thị liên quan đến máy ảnh thực tế đang hoạt động.

Công tắc thiết bị máy ảnh thực

Giao diện thiết bị máy ảnh logic cung cấp các API cần thiết để xử lý các nút chuyển máy ảnh thực. Nhà phát triển phải theo dõi giá trị của mã nhận dạng thực tế đang hoạt động.

Trên thiết bị có thể gập lại, kết quả chụp giấy tờ tuỳ thân dạng vật lý đang hoạt động có thể thay đổi theo các nút chuyển trạng thái có thể gập lại như gập và mở.

Trong những trường hợp như vậy, nhà phát triển phải sử dụng giấy tờ tuỳ thân hiện đang hoạt động và kiểm tra các đặc điểm của máy ảnh tương ứng.

Hai đặc điểm quan trọng nhất của máy ảnh có thể thay đổi và ảnh hưởng đến việc kết xuất bản xem trước là hướng cảm biếnhướng ống kính.

Nếu quy trình kết xuất bản xem trước của ứng dụng phụ thuộc vào các tham số máy ảnh tĩnh để tính toán ma trận biến đổi cuối cùng, hãy đảm bảo rằng bạn truyền các giá trị hiện tại và cập nhật các phép biến đổi đồ hoạ.

Để hiểu rõ hơn về quy trình xem trước của máy ảnh và cách tính toán các phép biến đổi, hãy tham khảo hướng dẫn về bản xem trước của máy ảnh.

Các giả định không hợp lệ khác

Bạn không nên lưu các giá trị đặc điểm của máy ảnh vào bộ nhớ đệm.

Bạn không thể giả định rằng các đặc điểm của máy ảnh sẽ không thay đổi, vì các đặc điểm này có thể thay đổi khi thiết bị được gập lại hoặc mở ra. Vì lý do đó, bạn không nên lưu trữ và sử dụng lại các đặc điểm của máy ảnh. Thay vào đó, hãy kiểm tra đặc điểm của máy ảnh mỗi lần.

Hãy xem xét trường hợp ứng dụng máy ảnh khởi động trên màn hình ngoài và lưu các đặc điểm hiện tại của máy ảnh trước và sau vào bộ nhớ đệm. Nếu ứng dụng khởi động lại trên màn hình trong, cảm biến vật lý phía trước đang hoạt động có thể có hướng khác, có thể kích hoạt các hiệu ứng phụ kết xuất bản xem trước không mong muốn.