錄製和播放簡介

平台專屬指南

絕大多數的擴增實境體驗都是「即時」狀態。因此,使用者必須在特定時間待在某個地點,並將手機設為特殊的 AR 模式並開啟 AR 應用程式。舉例來說,如果使用者想查看 AR 沙發在客廳裡的外觀,就必須在螢幕環境中「放置」沙發。

錄製和 Playback API 已不適用這項「即時」要求,讓您建立能隨時隨地觀看的 AR 體驗。錄製 API 會儲存攝影機的影片串流、IMU 資料或任何其他您選擇儲存在 MP4 檔案中的自訂中繼資料。接著,即可透過 Playback API 將這些錄製的影片提供給 ARCore,如此一來,MP4 就和直播工作階段資訊提供一樣。你還是可以使用即時鏡頭工作階段,但有了這個新的 API,AR 應用程式可以選擇使用預錄的 MP4 而非該即時工作階段。

使用者也可以善加利用這項功能。無論學生人在現實世界中,他們都能從原生媒體庫取得使用 Recording and Playback API 錄製的任何影片,然後編輯或播放 AR 物件、特效和濾鏡。有了這項功能,使用者在搭車前往辦公室或躺在床上時,就能在 AR 購物。

使用錄製和 Playback API 進行開發的用途

Recording 和 Playback API 可省去建構 AR 應用程式的時間和空間限制。您可以透過下列幾種方式在專案中使用這項工具。

錄製一次,隨處測試

你可以使用 Recording API 錄製影片,再使用任何相容的裝置播放,而不必每次測試 AR 功能時都實際前往某個地點。在購物中心內打造體驗嗎?不必在每次測試變更時隨時進行。您只需要記錄一次造訪地點,就能在家中舒適的空間中反覆改進與開發過程。

縮短疊代時間

不必針對要測試的每個 Android 裝置錄製影片,只需錄製一次影片,然後在疊代階段在多個不同裝置上播放該影片即可。

減少開發團隊的手動測試負擔

與其為每項新功能建立自訂資料集,不如使用預錄的資料集,在推出新功能時,納入 ARCore 深度或最新追蹤的改善項目。

裝置相容性

你需要使用 ARCore 才能使用錄製和 Playback API 錄製資料,但無須使用 ARCore 也能播放內容。使用這項功能錄製的 MP4 檔案基本上就是影片檔案,具有額外資料,可透過任何影片播放器觀看。您可以使用 Android 的 ExoPlayer 檢查這些遊戲,或使用任何可 demux MP4 及 ARCore 新增的其他資料相容的播放器進行檢查。

系統如何記錄影片和 AR 資料以便播放

ARCore 會將錄製的工作階段儲存至目標裝置上的 MP4 檔案。這些檔案包含多個視訊軌和其他資料。儲存這些工作階段後,你可以允許應用程式使用這項資料取代攝影機即時工作階段。

錄音內容包含哪些內容?

ARCore 會從 H.264 影片擷取下列資料。你可以使用任何與 MP4 相容的影片播放器,且能切換音軌。清單中的第一個音軌是清單中第一首曲目,這是因為部分與 MP4 相容的影片播放器會自動播放清單中的第一個音軌,而您無法選擇要播放的視訊軌。

主要影片軌 (CPU 圖片追蹤)

主要影片檔案會錄下環境或場景,方便日後播放。根據預設,ARCore 會記錄用於動作追蹤的 640x480 (VGA) CPU 映像檔,做為主要影片串流。

ARCore 不會擷取做為直通式相機圖像,算繪至螢幕畫面的 (高解析度) GPU 紋理

如要在播放過程中使用高解析度圖片串流,您必須設定相機,提供具有所需解析度的 CPU 映像檔。在這種情況下:

  • ARCore 會要求使用動作追蹤所需的 640x480 (VGA) CPU 映像檔,以及設定相機設定指定的高解析度 CPU 影像。
  • 擷取第二個 CPU 映像檔串流可能會影響應用程式效能,不同裝置可能會受到不同影響。
  • 在播放期間,ARCore 會使用在錄製期間擷取的高解析度 CPU 圖像,做為 GPU 紋理。
  • 然後高解析度 CPU 影像會成為 MP4 錄影時的預設視訊串流。

你在錄影期間選取的攝影機設定會影響錄影中的 CPU 影像和主要視訊串流。如未選取具備高解析度 CPU 影像的相機設定,這部影片會成為檔案中的第一個音軌,且無論使用何種影片播放器,該影片都會播放。

相機深度圖視覺化

這個影片檔案代表相機深度圖,從裝置的硬體深度感應器 (例如飛行時間感應器 (或 ToF 感應器) 記錄後,就會轉換成 RGB 聲道值。這部影片僅供預覽之用,

API 呼叫事件

ARCore 會從裝置的陀螺儀和加速計感應器記錄測量結果。並記錄其他資料,其中一些可能屬於機密的資料:

  • 資料集格式版本
  • ARCore SDK 版本
  • AR 專用 Google Play 服務
  • 裝置指紋 (adb shell getprop ro.build.fingerprint 的輸出內容)
  • 關於 AR 追蹤使用的感應器的其他相關資訊
  • 使用 ARCore Geospatial API 時,會測出裝置的估計位置、磁力儀讀數和指南針讀數