Not: Bu sayfada, desteği sonlandırılan Camera sınıfı ele alınmaktadır. CameraX'i veya belirli kullanım alanları için Camera2'yi kullanmanızı öneririz. Hem CameraX hem de Camera2, Android 5.0 (API düzeyi 21) ve sonraki sürümleri destekler.
Camera1'den CameraX'e nasıl geçiş yapacağınızı öğrenmek için
Camera1'den CameraX'e geçiş başlıklı makaleyi inceleyin.
Alternatif olarak, Camera1'den CameraX'e geçiş için temsilci becerisini kullanabilirsiniz.
Bu derste, mevcut kamera uygulamalarını kullanarak nasıl video çekileceği açıklanmaktadır.
Uygulamanızın bir işlevi vardır ve videoları entegre etmek bu işlevin yalnızca küçük bir parçasıdır. Video kamerayı yeniden icat etmek yerine, videoları en az zahmetle çekmek istiyorsunuz. Neyse ki Android destekli cihazların çoğunda video kaydeden bir kamera uygulaması zaten var. Bu derste, bunu sizin için yapmasını sağlayacaksınız.
Aşağıdaki ilgili kaynaklara göz atın:
Kamera özelliğini isteme
Uygulamanızın kameraya bağlı olduğunu bildirmek için manifest dosyasına bir <uses-feature> etiketi ekleyin:
<manifest ... > <uses-feature android:name="android.hardware.camera" android:required="true" /> ... </manifest>
Uygulamanız kamera kullanıyor ancak çalışması için kamera gerekmiyorsa android:required özelliğini false olarak ayarlayın. Böylece Google Play, kamerası olmayan cihazların uygulamanızı indirmesine izin verir. Ardından, hasSystemFeature(PackageManager.FEATURE_CAMERA) yöntemini çağırarak çalışma zamanında kameranın kullanılabilirliğini kontrol etmek sizin sorumluluğunuzdadır.
Kamera kullanılamıyorsa kamera özelliklerinizi devre dışı bırakmanız gerekir.
Videoyu görüntüleyin
Android Kamera uygulaması, onActivityResult() yöntemine iletilen Intent içindeki videoyu, depolama alanındaki video konumunu gösteren bir Uri olarak döndürür. Aşağıdaki kod bu videoyu alır ve VideoView içinde gösterir.
Kotlin
override fun onActivityResult(requestCode: Int, resultCode: Int, intent: Intent) { if (requestCode == REQUEST_VIDEO_CAPTURE && resultCode == RESULT_OK) { val videoUri: Uri = intent.data videoView.setVideoURI(videoUri) } }
Java
@Override protected void onActivityResult(int requestCode, int resultCode, Intent intent) { if (requestCode == REQUEST_VIDEO_CAPTURE && resultCode == RESULT_OK) { Uri videoUri = intent.getData(); videoView.setVideoURI(videoUri); } }