Video kaydetme

Not: Bu sayfada, desteği sonlandırılan Camera sınıfı ele alınmaktadır. CameraX veya belirli kullanım alanları için Camera2 kullanmanızı öneririz. Hem CameraX hem de Camera2, Android 5.0 (API düzeyi 21) ve sonraki sürümleri destekler.

Bu derste, mevcut kamera uygulamalarını kullanarak video çekme hakkında bilgi verilmektedir.

Uygulamanızın yapması gereken bir iş vardır ve video entegrasyonu bu işin yalnızca küçük bir parçasıdır. Video çekmek için çok fazla uğraşmak istemiyorsunuz ve video kamerayı yeniden icat etmek istemiyorsunuz. Neyse ki Android işletim sistemli çoğu cihazda video kaydeden bir kamera uygulaması zaten mevcuttur. Bu derste, bunu sizin yerinize yapmasını sağlarsınız.

Aşağıdaki ilgili kaynaklara göz atın:

Kamera özelliğini isteme

Uygulamanızın kameraya ihtiyaç duyduğunu belirtmek 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ıyorsa ancak çalışması için kameraya ihtiyaç duymuyorsa android:required değerini false olarak ayarlayın. Bu durumda Google Play, kamerası olmayan cihazların uygulamanızı indirmesine izin verir. Ardından, hasSystemFeature(PackageManager.FEATURE_CAMERA) çağrısını yaparak çalışma zamanında kameranın kullanılabilir olup olmadığını kontrol etmek sizin sorumluluğunuzdadır. Kamera yoksa kamera özelliklerinizi devre dışı bırakmanız gerekir.

Videoyu görüntüleyin

Android Kamera uygulaması, videoyu Intent içinde onActivityResult()'a Uri olarak döndürür. Bu Uri, depolama alanındaki video konumunu gösterir. 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);
    }
}