Not: Bu sayfada Camera2 paketi ele alınmaktadır. Uygulamanız Camera2'nin belirli, düşük düzey özelliklerini gerektirmediği sürece CameraX'i kullanmanızı öneririz. Hem CameraX hem de Camera2, Android 5.0 (API düzeyi 21) ve sonraki sürümleri destekler.
Kamera geliştiricileri, katlanabilir cihazlarda çalışan kamera uygulamaları üzerinde çalışırken benzersiz zorluklarla karşılaşabilir. Ekran yönü, kamera yönü ve kameranın baktığı yönle ilgili çeşitli varsayımların genellikle geçerli olduğu akıllı telefonların aksine, katlanabilir cihazlar farklı form faktörlerine, ekran düzenlerine ve kamera kombinasyonlarına sahip olabilir.
Akıllı telefonlarda genellikle ekranla eşleşen dikey yönde kameralar bulunur. Ancak bu, belirli katlanabilir durumlar için geçerli olmayabilir. Katlanmamış bir ekranda dikey yönlü bir sensör ve yatay yönlü bir sensör bulunabilir.
Kamera uygulamanız SurfaceTexture
veya özel bir oluşturma ardışık düzeni kullanıyorsa kamera sensörünün yönüne dikkat edin.
Bu sayede, oluşturulan içeriğin her zaman fiziksel olarak dik durması ve piksellerin yatay veya dikey yönlerde uzamaması sağlanır.
Bu kılavuzda, Camera2 geliştiricilerinin dikkate alması gerekenler ve kamera önizlemesi oluşturma işlemini farklı katlanabilir cihaz durumlarına göre ayarlama adımları hakkında bilgi verilmektedir.
Cihaz durumu anahtarları kameraları nasıl etkiler?
Katlanabilir cihazlar şunları içerebilir:
- İki veya daha fazla fiziksel ekran
- Birkaç fiziksel kamera cihazı
Bu cihazlar, cihaz durumuna bağlı olarak etkin hale gelebilir. Bazı cihazlar, cihaz durumunu yönetmeyi basitleştirmek için iki veya daha fazla fiziksel sensörden oluşan mantıksal bir kamera uygular.
Geliştiriciler bu tür mantıksal bir kamera cihazında önizleme aktarımını açıp etkinleştirirse kamera, belirli katlama durumlarına yanıt olarak fiziksel cihazlar arasında otomatik olarak geçiş yapar.
Örneğin, iki ekrana sahip katlanabilir bir cihazı ele alalım:
- Katlanmış durumdaki normal dikey ekranda, dikey yönde fiziksel bir "dış" ön kamera var.
- Katlanmış durumdayken etkinleştirilen katlanabilir ekran. Bu ekranda, katlanmış ekrana göre yatay yöne sahip "iç" ön fiziksel kamera bulunur.
Kullanıcı, ön mantıksal kameradan bir uygulama aktarılırken cihazı katlar veya açarsa cihaz uygulaması, her cihaz durumu geçişine yanıt olarak iç ve dış fiziksel sensörler arasında geçiş yapabilir.
Ekran anahtarı, uygulamanın kullanıcı arayüzünü ayarlamasını gerektirebilir.
Geliştiricilerin, kullanıcı arayüzü ayarlarının yanı sıra kamera önizlemesinin etkin fiziksel kameraya göre nasıl oluşturulacağını da ayarlamaları gerekebilir.
Fiziksel kamera cihaz anahtarları
Mantıksal kamera cihazı arayüzü, fiziksel kamera anahtarlarını işlemek için gerekli API'leri sağlar. Geliştiriciler, etkin fiziksel kimliğin değerini izlemelidir.
Katlanabilir cihazlarda, katlama ve açma gibi farklı katlanabilir durum geçişlerine bağlı olarak etkin fiziksel kimlik yakalama sonucu değişebilir.
Bu tür durumlarda geliştiriciler, mevcut etkin fiziksel kimliği kullanmalı ve ilgili kamera özelliklerini kontrol etmelidir.
Değişme ve önizleme oluşturmayı etkileyebilecek en önemli iki kamera özelliği sensör yönü ve lens yönü'dür.
Uygulamanızın önizleme oluşturma ardışık düzeni, nihai dönüşüm matrisini hesaplamak için statik kamera parametrelerine bağlıysa geçerli değerleri ilettiğinizden ve grafik dönüşümlerini güncellediğinizden emin olun.
Kamera önizleme ardışık düzenlerini ve dönüşümlerin nasıl hesaplandığını daha iyi anlamak için kamera önizleme kılavuzunu inceleyin.
Diğer geçersiz varsayımlar
Kamera özelliği değerlerinin önbelleğe alınması önerilmez.
Cihaz katlandığında veya açıldığında özellikler değişebileceğinden kamera özelliklerinin sabit kalacağını varsayamazsınız. Bu nedenle, kamera özelliklerini depolayıp yeniden kullanmamalısınız. Bunun yerine, her seferinde kamera özelliklerini kontrol edin.
Bir kamera uygulamasının dış ön ekranda başlatıldığı ve mevcut ön ve arka kamera özelliklerini önbelleğe aldığı durumu düşünün. Uygulama iç ekranda yeniden başlatılırsa etkin ön fiziksel sensör farklı bir yönde olabilir. Bu da istenmeyen önizleme oluşturma yan etkilerini tetikleyebilir.