Video kaydetme

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);
    }
}