Recording & Playback API memungkinkan Anda merekam sesi dan menggunakannya sebagai pengganti feed kamera real-time. Namun, rekaman ini hanya berisi data video dan sensor. Anda juga dapat menambahkan data kustom ke rekaman sesi dan menampilkan data tersebut kepada Anda selama pemutaran, seolah-olah data tersebut adalah bagian dari gambar kamera.
ARCore tidak otomatis menyertakan data kustom apa pun dalam rekaman. Sebaliknya, API ini memungkinkan Anda menambahkan data kustom ke frame ARCore selama perekaman, dan mengambil data yang sama dari frame selama pemutaran. Anda dapat memprogram aplikasi sedemikian rupa sehingga pengguna akan mendapatkan kembali data yang mereka harapkan saat memutar sesi mereka.
Kasus penggunaan untuk data kustom
Menambahkan data kustom ke rekaman akan memperluas kemungkinan untuk aplikasi AR Anda. Berikut adalah beberapa kasus penggunaan tertentu.
Menggunakan AR kapan saja di mana saja
Sebelumnya, pengguna hanya dapat mengakses pengalaman AR di tempat dan waktu yang tepat. Jika ingin menempatkan lampu AR di ruang tamu, mereka harus berdiri di lokasi secara fisik untuk melihat tampilan lampu di sana. Dengan trek kustom, mereka dapat merekam ruang keluarga mereka sekali dan menambahkan furnitur virtual ke tampilan kapan saja mereka mau.
Membuat pengalaman AR bersama
Tanpa persyaratan sesi langsung, pengguna memiliki lebih banyak opsi untuk pengeditan AR, sehingga mereka dapat membuat dan mengakses konten AR unik di mana saja dan kapan saja. Misalnya, mereka dapat merekam lingkungan tertentu, menambahkan efek augmented reality, dan membagikannya kepada teman.
Prasyarat
Pastikan Anda memahami konsep AR dasar dan cara mengonfigurasi sesi ARCore sebelum melanjutkan.
Melakukan inisialisasi rekaman dengan data kustom
Ikuti langkah-langkah berikut untuk melakukan inisialisasi rekaman dengan data kustom. Untuk memulai, menghentikan, dan memeriksa sesi perekaman, lihat Merekam dan memutar sesi AR.
- Dapatkan
ARCoreRecordingConfig
. - Buat
Track
baru dengan UUID kustom. Semua data kustom akan disimpan di sini. - Tambahkan
Track
keARCoreRecordingConfig
yang Anda buat selama konfigurasi sesi.
// Initialize a new track with a custom UUID.
// Make sure to save the UUID because it is the ID that you will use
// to get your data back during playback.
var track = new Track {
Id = Guid.Parse("de5ec7a4-09ec-4c48-b2c3-a98b66e71893") // from UUID generator
};
// Add the Track to the recordingConfig.
// recordingConfig must already be configured.
List<Track> tracks = new List<Track>();
tracks.Add(track);
recordingConfig.Tracks = tracks;
Semua trek baru diperlakukan sebagai rekaman terpisah, dengan setiap trek yang direkam menempati UUID-nya sendiri.
Mengonfigurasi jalur dengan data tambahan
Konfigurasikan jalur dengan data tambahan yang menjelaskan rekaman sesi. Misalnya, Anda dapat “memberi tag” pada trek dengan menambahkan catatan yang menjelaskan lokasi dan waktu saat Anda merekam sesi: “Sesi ini direkam di mal pada sore hari”.
// Set additional data on this track.
// For example, describe where you recorded the session.
byte[] metadata = ...
track.Metadata = metadata;
Mengonfigurasi jalur dengan jenis MIME
Konfigurasikan jalur dengan jenis MIME yang menjelaskan jenis data yang direkam di jalur, untuk kompatibilitas dengan alat eksternal.
Jika Anda tidak menentukan jenis, data akan dikategorikan sebagai
application/text
. ARCore mengabaikan jenis MIME saat membaca data.
// Set a MIME type for compatibility with external tools.
track.MimeType = "text/csv";
Merekam jalur data kustom
Semua data jalur kustom direkam ke dalam frame. Waktu Anda merekam data ke frame adalah waktu yang sama dengan waktu data akan ditampilkan selama pemutaran. Misalnya, jika Anda memanggil RecordTrackData()
dengan nilai “A” di 00:07:02
, Anda akan mendapatkan “A” kembali di tanda 00:07:02
saat trek diputar.
Untuk merekam jalur data kustom, panggil RecordTrackData()
.
// Place an AR lamp in a room.
if (placeLampButtonWasPressed) {
// Convert the lamp data into a byte array.
var lampData = new byte[] { (byte) Lamp.FLOOR }; // a floor lamp
recordingManager.RecordTrackData(trackGuid, lampData);
}
Memutar jalur data kustom
Mengekstrak data kustom dari rekaman sesi selama pemutaran.
Melakukan inisialisasi pemutaran
Melakukan inisialisasi pemutaran dengan data kustom sama dengan melakukan inisialisasi pemutaran rekaman sesi reguler.
Menampilkan data kustom
Panggil GetUpdatedTrackData()
untuk mengambil data kustom yang direkam pada frame. Anda dapat mengambil beberapa data trek dari frame yang sama. Misalnya, jika Anda memanggil RecordTrackData()
dua kali pada frame yang sama selama perekaman, Anda akan mendapatkan kembali dua instance TrackData
selama pemutaran.
// Fetch the data recorded on a select frame and place it in a
// container object.
var trackDataList = recordingManager.GetUpdatedTrackData(trackGuid);
Setelah TrackData
berada dalam objek penampung, ekstrak byte data kustom.
// Extract the bytes of custom data from the list of track data.
foreach (TrackData trackData in trackDataList) {
var data = trackData.Data;
Lamp lamp = Lamp.fromByte(data[0]); // This is the lamp!
}
Langkah selanjutnya
- Pelajari cara mem-build aplikasi Anda sendiri dengan Recording & Playback dengan membaca codelab Recording & Playback.