Giới thiệu về tính năng ghi và phát

Hướng dẫn dành riêng cho từng nền tảng

Phần lớn trải nghiệm Thực tế tăng cường đều là "theo thời gian thực". Người dùng phải ở một địa điểm nhất định vào một thời điểm nhất định, với điện thoại được đặt ở chế độ AR đặc biệt và mở một ứng dụng AR. Ví dụ: nếu muốn xem một chiếc ghế sofa AR trông như thế nào trong phòng khách, người dùng sẽ phải "đặt" chiếc ghế sofa đó vào môi trường trên màn hình trong khi họ đang ở trong phòng.

Recording and Playback API loại bỏ yêu cầu "theo thời gian thực" này, cho phép bạn tạo trải nghiệm AR có thể xem ở mọi nơi, mọi lúc. Recording API lưu trữ luồng video của camera, dữ liệu IMU hoặc bất kỳ siêu dữ liệu tuỳ chỉnh nào khác mà bạn chọn lưu trong tệp MP4. Sau đó, bạn có thể truyền các video đã ghi này vào ARCore thông qua Playback API. API này sẽ coi tệp MP4 này giống như một nguồn cấp dữ liệu của phiên trực tiếp. Bạn vẫn có thể sử dụng một phiên camera trực tiếp, nhưng với API mới này, các ứng dụng thực tế tăng cường có thể chọn sử dụng tệp MP4 đã ghi sẵn thay vì phiên trực tiếp đó.

Người dùng cuối cũng có thể tận dụng tính năng này. Dù ở đâu trong cuộc sống thực, họ đều có thể mở bất kỳ video nào được ghi bằng Recording and Playback API trong thư viện gốc của mình, đồng thời chỉnh sửa hoặc phát các đối tượng, hiệu ứng và bộ lọc thực tế tăng cường. Với tính năng này, người dùng có thể mua sắm bằng thực tế tăng cường khi đang đi tàu đến văn phòng hoặc nằm dài trên giường.

Các trường hợp sử dụng để phát triển bằng API Ghi và Phát

API Ghi hình và phát lại giúp loại bỏ những hạn chế về thời gian và không gian khi xây dựng ứng dụng thực tế tăng cường. Sau đây là một số cách bạn có thể sử dụng tính năng này trong các dự án của riêng mình.

Ghi hình một lần, kiểm thử ở mọi nơi

Thay vì phải đến một vị trí thực tế mỗi khi cần kiểm thử một tính năng thực tế tăng cường, bạn có thể ghi lại video bằng Recording API rồi phát lại bằng mọi thiết bị tương thích. Bạn đang tạo trải nghiệm trong một trung tâm mua sắm? Bạn không cần phải truy cập vào đó mỗi khi muốn kiểm thử một thay đổi. Bạn chỉ cần ghi lại chuyến tham quan một lần, sau đó lặp lại và phát triển từ chính bàn làm việc của mình.

Giảm thời gian lặp lại

Thay vì phải ghi hình cho từng thiết bị Android mà bạn muốn hỗ trợ, cho từng trường hợp mà bạn muốn kiểm thử, bạn có thể ghi hình một lần và phát lại trên nhiều thiết bị khác nhau trong giai đoạn lặp lại.

Giảm gánh nặng kiểm thử thủ công cho các nhóm phát triển

Thay vì tạo tập dữ liệu tuỳ chỉnh cho mọi tính năng mới, hãy tận dụng các tập dữ liệu được ghi sẵn trong khi phát hành các tính năng mới kết hợp chiều sâu hoặc những điểm cải tiến mới nhất về tính năng theo dõi của ARCore.

Khả năng tương thích với thiết bị

Bạn sẽ cần ARCore để ghi dữ liệu bằng Recording and Playback API, nhưng không cần ARCore để phát lại dữ liệu. Về cơ bản, tệp MP4 được ghi bằng tính năng này là tệp video có thêm dữ liệu mà bạn có thể xem bằng bất kỳ trình phát video nào. Bạn có thể kiểm tra các tệp này bằng ExoPlayer của Android hoặc bất kỳ trình phát tương thích nào có thể vừa tách MP4 vừa quản lý dữ liệu bổ sung do ARCore thêm vào.

Cách ghi dữ liệu video và dữ liệu thực tế tăng cường để phát lại

ARCore lưu các phiên đã ghi vào tệp MP4 trên thiết bị mục tiêu. Các tệp này chứa nhiều bản video và dữ liệu khác. Sau khi lưu các phiên này, bạn có thể chỉ định ứng dụng của mình sử dụng dữ liệu này thay vì một phiên camera trực tiếp.

Nội dung trong bản ghi

ARCore ghi lại những dữ liệu sau trong video H.264. Bạn có thể truy cập tệp này trên mọi trình phát video tương thích với MP4 và có khả năng chuyển đổi giữa các tệp phụ đề. Bản phụ đề có độ phân giải cao nhất sẽ là bản đầu tiên trong danh sách vì một số trình phát video tương thích với MP4 sẽ tự động phát bản phụ đề đầu tiên trong danh sách mà không cho phép bạn chọn bản phụ đề video để phát.

Đường dẫn video chính (đường dẫn hình ảnh CPU)

Tệp video chính ghi lại môi trường hoặc cảnh để phát lại sau này. Theo mặc định, ARCore ghi lại hình ảnh CPU 640x480 (VGA) được dùng cho tính năng theo dõi chuyển động làm luồng video chính.

ARCore không ghi lại kết cấu GPU (độ phân giải cao) được hiển thị vào màn hình dưới dạng hình ảnh camera truyền qua.

Nếu muốn có luồng hình ảnh có độ phân giải cao trong quá trình phát, bạn phải định cấu hình một camera cung cấp hình ảnh CPU có độ phân giải mong muốn. Trong trường hợp này:

  • ARCore sẽ yêu cầu cả hình ảnh CPU 640x480 (VGA) mà ứng dụng này cần để theo dõi chuyển động và hình ảnh CPU có độ phân giải cao do cấu hình camera đã thiết lập chỉ định.
  • Việc ghi lại luồng hình ảnh CPU thứ hai có thể ảnh hưởng đến hiệu suất của ứng dụng và các thiết bị khác nhau có thể bị ảnh hưởng theo cách khác nhau.
  • Trong quá trình phát, ARCore sẽ sử dụng hình ảnh CPU có độ phân giải cao được chụp trong quá trình ghi làm kết cấu GPU trong quá trình phát.
  • Hình ảnh CPU có độ phân giải cao sẽ trở thành luồng video mặc định trong bản ghi MP4.

Cấu hình camera đã chọn trong quá trình ghi sẽ xác định hình ảnh CPU và luồng video chính trong bản ghi. Nếu bạn không chọn cấu hình camera có hình ảnh CPU độ phân giải cao, thì video này sẽ là bản nhạc đầu tiên trong tệp và sẽ phát theo mặc định, bất kể bạn sử dụng trình phát video nào.

Hình ảnh trực quan về bản đồ độ sâu của camera

Đây là một tệp video thể hiện bản đồ độ sâu của camera, được ghi lại từ cảm biến độ sâu phần cứng của thiết bị, chẳng hạn như cảm biến thời gian bay (hoặc cảm biến ToF) và được chuyển đổi thành các giá trị kênh RGB. Video này chỉ nên được dùng cho mục đích xem trước.

Sự kiện lệnh gọi API

ARCore ghi lại các phép đo từ cảm biến gia tốc kế và con quay hồi chuyển của thiết bị. Tính năng này cũng ghi lại những dữ liệu khác, một số dữ liệu có thể nhạy cảm:

  • Các phiên bản định dạng tập dữ liệu
  • Phiên bản ARCore SDK
  • Phiên bản Dịch vụ Google Play cho Thực tế tăng cường
  • Vân tay trên thiết bị (đầu ra của adb shell getprop ro.build.fingerprint)
  • Thông tin bổ sung về các cảm biến được dùng để theo dõi thực tế tăng cường
  • Khi sử dụng ARCore Geospatial API, vị trí ước tính, số đọc từ kế và số đọc la bàn của thiết bị