CameraConfig
,
aşağıdaki kamera sensörü dahil:
- Kamera kimliği
- Derinlik sensörü kullanılıp kullanılmayacağı
- Kameranın baktığı yön:
- öne bakan (selfie)
- arkaya bakan (dünya)
- FPS (saniyedeki kare sayısı) aralığı
- CPU resim boyutları
- GPU doku boyutu
- Bu seçenek varsa cihazın stereo çok kameralı kullanılıp kullanılmayacağı
ARCore, yeni bir ARCore oturumu oluştururken
Kamera yapılandırmasını ayarlamak için setCameraConfig
.
tarafından döndürülen mevcut yapılandırmaların listesiyle en iyi eşleşen
getSupportedCameraConfigs(CameraConfigFilter)
.
Uygulamanız CameraConfigFilter
kullanabilir
kamera yapılandırmalarını en aza
indirmek için
filtre uygulayabilirsiniz.
Filtreleme için yaygın kullanım örneklerinden bazıları şunlardır:
Kamera çekimi kare hızı 30 fps ile sınırlanıyor. Şu cihazları destekleyen cihazlarda: ARCore, 60 fps'yi destekleyen kamera yapılandırmalarına öncelik verir kare hızı. 60 fps'yi destekleyen tüm kamera yapılandırmalarını filtrelemek için
setTargetFps
ile filtre uygulayınTargetFps.TARGET_FPS_30
kullanılıyor.Java
// Return only camera configs that target 30 FPS camera capture frame rate. filter.setTargetFps(EnumSet.of(CameraConfig.TargetFps.TARGET_FPS_30));
Kotlin
// Return only camera configs that target 30 FPS camera capture frame rate. filter.targetFps = EnumSet.of(CameraConfig.TargetFps.TARGET_FPS_30)
ARCore'un derinlik sensörünü kullanmasını önleyin. Şu cihazlarda: Desteklenen derinlik sensörü olarak ARCore, derinliği kullanan kamera yapılandırmaları görebilirsiniz. Derinlik sensörünü kullanan tüm kamera yapılandırmalarını filtrelemek için
setDepthSensorUsage
DepthSensorUsage.DO_NOT_USE
kullanarak filtreleyin.Java
// Return only camera configs that will not use the depth sensor. filter.setDepthSensorUsage(EnumSet.of(CameraConfig.DepthSensorUsage.DO_NOT_USE));
Kotlin
// Return only camera configs that will not use the depth sensor. filter.depthSensorUsage = EnumSet.of(CameraConfig.DepthSensorUsage.DO_NOT_USE)
Alternatif bir GPU doku çözünürlüğü seçme. Şu tarihte: desteklenen cihazlarda, ARCore, ek GPU doku çözünürlükleri sunar. Daha düşük çözünürlüklü bir GPU dokusu seçme GPU yükünü azaltıp belleği düşürerek uygulama performansını iyileştirmeye yardımcı olabilir performansı artıracağı garanti edilmese de bant genişliğinin tüm durumlarda geçerlidir.
Kamera yapılandırma filtrelerini kullanma
Uygulamanızın kamera yapılandırmalarını filtrelemesini sağlamak için aşağıdaki adımları uygulayın.
Java
// Create a camera config filter for the session. CameraConfigFilter filter = new CameraConfigFilter(session); // Return only camera configs that target 30 fps camera capture frame rate. filter.setTargetFps(EnumSet.of(CameraConfig.TargetFps.TARGET_FPS_30)); // Return only camera configs that will not use the depth sensor. filter.setDepthSensorUsage(EnumSet.of(CameraConfig.DepthSensorUsage.DO_NOT_USE)); // Get list of configs that match filter settings. // In this case, this list is guaranteed to contain at least one element, // because both TargetFps.TARGET_FPS_30 and DepthSensorUsage.DO_NOT_USE // are supported on all ARCore supported devices. List<CameraConfig> cameraConfigList = session.getSupportedCameraConfigs(filter); // Use element 0 from the list of returned camera configs. This is because // it contains the camera config that best matches the specified filter // settings. session.setCameraConfig(cameraConfigList.get(0));
Kotlin
// Create a camera config filter for the session. val filter = CameraConfigFilter(session) // Return only camera configs that target 30 fps camera capture frame rate. filter.targetFps = EnumSet.of(CameraConfig.TargetFps.TARGET_FPS_30) // Return only camera configs that will not use the depth sensor. filter.depthSensorUsage = EnumSet.of(CameraConfig.DepthSensorUsage.DO_NOT_USE) // Get list of configs that match filter settings. // In this case, this list is guaranteed to contain at least one element, // because both TargetFps.TARGET_FPS_30 and DepthSensorUsage.DO_NOT_USE // are supported on all ARCore supported devices. val cameraConfigList = session.getSupportedCameraConfigs(filter) // Use element 0 from the list of returned camera configs. This is because // it contains the camera config that best matches the specified filter // settings. session.cameraConfig = cameraConfigList[0]
Konsantrasyon modu
Odak modunu oturum yapılandırmasında da ayarlayabilirsiniz. Sabit odak, izleme için genellikle daha iyidir (ve çoğu cihazda ARCore varsayılanıdır). Kayıt, fotoğrafçılık, video çekimi ve yakındaki nesnelerin odakta olması gerektiğinde otomatik odaklama gereklidir.
Bkz. Config.FocusMode
inceleyebilirsiniz.