تسجيل الفيديوهات

ملاحظة: تشير هذه الصفحة إلى فئة الكاميرا التي تم إيقافها نهائيًا. ننصح باستخدام CameraX أو Camera2 في حالات استخدام معيّنة. تتوافق كل من CameraX وCamera2 مع الإصدار 5.0 من نظام التشغيل Android (المستوى 21 من واجهة برمجة التطبيقات) والإصدارات الأحدث.

للتعرّف على كيفية نقل البيانات من Camera1 إلى CameraX، يُرجى الاطّلاع على نقل البيانات من Camera1 إلى CameraX. بدلاً من ذلك، يمكنك استخدام مهارة الذكاء الاصطناعي الوكيل لنقل البيانات من Camera1 إلى CameraX.

يشرح هذا الدرس كيفية التقاط الفيديو باستخدام تطبيقات الكاميرا الحالية.

يؤدي تطبيقك وظيفة معينة، ودمج الفيديوهات ليس سوى جزء صغير منها. تريد التقاط فيديوهات بأقل قدر من الجهد، وليس إعادة ابتكار كاميرا الفيديو. لحسن الحظ، تحتوي معظم الأجهزة التي تعمل بنظام Android بالفعل على تطبيق كاميرا يسجل الفيديو. في هذا الدرس، ستتعرّف على كيفية تنفيذ ذلك.

يُرجى الاطّلاع على المراجع التالية ذات الصلة:

طلب ميزة الكاميرا

للإعلان عن أنّ تطبيقك يعتمد على توفّر كاميرا، أضِف علامة <uses-feature> في ملف البيان:

<manifest ... >
    <uses-feature android:name="android.hardware.camera"
                  android:required="true" />
    ...
</manifest>

إذا كان تطبيقك يستخدم الكاميرا، ولكن لا يتطلبها لكي يعمل، اضبط android:required على false. وبذلك، سيسمح Google Play للأجهزة التي لا تحتوي على كاميرا بتنزيل تطبيقك. وتقع على عاتقك مسؤولية التحقّق من توفّر الكاميرا في وقت التشغيل من خلال استدعاء hasSystemFeature(PackageManager.FEATURE_CAMERA). إذا لم تكن الكاميرا متاحة، عليك إيقاف ميزات الكاميرا.

مشاهدة الفيديو

يعرض تطبيق "كاميرا Android" الفيديو في Intent الذي تم تسليمه إلى onActivityResult() على شكل Uri يشير إلى موقع الفيديو في مساحة التخزين. يسترد الرمز التالي هذا الفيديو ويعرضه في VideoView.

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