Kayıt ve Oynatma API'si, bir oturumu kaydetmenize ve gerçek zamanlı kamera feed'i yerine kullanmanıza olanak tanır. Ancak bu kayıtlar yalnızca video ve sensör verilerini içerir. Ayrıca oturum kaydına özel veriler ekleyebilir ve oynatma sırasında bu verileri kamera görüntüsünün bir parçasıymış gibi size döndürebilirsiniz.
ARCore, kayıtlara otomatik olarak özel veri eklemez. Bunun yerine, kayıt sırasında bir ARCore çerçevesine özel veri eklemenize ve oynatma sırasında aynı verileri çerçeveden almanıza olanak tanır. Uygulamayı, kullanıcı oturumunu oynattığında beklediği verileri alacağı şekilde programlamak size bağlıdır.
Özel veriler için kullanım alanları
Kayıtlara özel veri eklemek, AR uygulamalarınızın olanaklarını genişletir. Aşağıda bazı belirli kullanım alanları verilmiştir.
Hareket halindeyken AR'ı kullanma
Geçmişte kullanıcılar artırılmış gerçeklik deneyimlerine yalnızca doğru yerde ve doğru zamanda erişebiliyordu. Salonuna AR abajur yerleştirmek isteyen kullanıcı, abajuru oraya yerleştirdiğinde nasıl görüneceğini görmek için fiziksel olarak o konumda durması gerekiyordu. Özel parçalar sayesinde oturma odalarını bir kez kaydedebilir ve istedikleri zaman sahneye sanal mobilyalar ekleyebilirler.
AR deneyimlerini ortaklaşa oluşturma
Canlı oturum şartı olmadığında kullanıcılar AR düzenleme için çok daha fazla seçeneğe sahip olur. Bu sayede, istedikleri zaman ve yerde benzersiz AR içerikleri oluşturup bunlara erişebilirler. Örneğin, belirli bir ortamı kaydedebilir, artırılmış gerçeklik efektleri ekleyebilir ve bunları arkadaşlarıyla paylaşabilir.
Ön koşullar
Devam etmeden önce temel AR kavramlarını ve ARCore oturumunu nasıl yapılandıracağınızı anladığınızdan emin olun.
Kayıtları özel verilerle başlatma
Bir kaydı özel veri kullanarak başlatmak için aşağıdaki adımları uygulayın. Kayıt oturumunu başlatmak, durdurmak ve kontrol etmek için lütfen AR oturumu kaydetme ve oynatma başlıklı makaleyi inceleyin.
ARCoreRecordingConfig
edinin.- Özel UUID içeren yeni bir
Track
oluşturun. Tüm özel veriler buraya kaydedilir. Track
'u oturum yapılandırması sırasında oluşturduğunuzARCoreRecordingConfig
'e ekleyin.
// 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;
Tüm yeni parçalar ayrı kayıtlar olarak değerlendirilir ve her kaydedilen parçanın kendi UUID'si olur.
Parçayı ek verilerle yapılandırma
Parçayı, oturum kaydını açıklayan ek verilerle yapılandırın. Örneğin, oturumu kaydettiğiniz konumu ve zamanı açıklayan bir not ekleyerek bir parçayı "etiketleyebilirsiniz": "Bu oturum, öğleden sonra alışveriş merkezinde kaydedildi."
// Set additional data on this track.
// For example, describe where you recorded the session.
byte[] metadata = ...
track.Metadata = metadata;
Parçayı MIME türüyle yapılandırma
Harici araçlarla uyumluluk için parçayı, parçaya kaydedilen veri türünü açıklayan bir MIME türüyle yapılandırın.
Tür belirtmezseniz veriler application/text
olarak kategorize edilir. ARCore, verileri okurken MIME türünü yoksayar.
// Set a MIME type for compatibility with external tools.
track.MimeType = "text/csv";
Özel veri kanalları kaydetme
Tüm özel parça verileri çerçevelere kaydedilir. Bir çerçeveye veri kaydettiğiniz zaman, oynatma sırasında verilerin döndürüleceği zamanla aynıdır. Örneğin, 00:07:02
'te "A" değerini kullanarak RecordTrackData()
işlevini çağırırsanız parça oynatıldığında 00:07:02
işaretinde "A" değerini alırsınız.
Özel veri kaydı oluşturmak için RecordTrackData()
tuşuna basın.
// 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);
}
Özel veri parçalarını oynatma
Oynatma sırasında oturum kaydından özel verileri ayıklama
Oynatma işlemini başlatma
Özel veri içeren bir oynatmayı başlatmak, normal bir oturum kaydının oynatılmasını başlatmakla aynıdır.
Özel verileri döndürme
Bir karede kaydedilen özel verileri almak için GetUpdatedTrackData()
işlevini çağırın. Aynı çerçeveden birden fazla parça verisi alınabilir. Örneğin, kayıt sırasında aynı karede RecordTrackData()
değerini iki kez çağırdıysanız oynatma sırasında TrackData
değerinin iki örneğini alırsınız.
// Fetch the data recorded on a select frame and place it in a
// container object.
var trackDataList = recordingManager.GetUpdatedTrackData(trackGuid);
TrackData
bir kapsayıcı nesnesinde olduğunda özel verilerin baytlarını ayıklayın.
// 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!
}
Sırada ne var?
- Kayıt ve Oynatma codelab'ini inceleyerek Kayıt ve Oynatma özelliğini kullanarak kendi uygulamanızı nasıl oluşturacağınızı öğrenin.