ضبط ویدیو

توجه: این صفحه به کلاس دوربین اشاره دارد که منسوخ شده است. توصیه می‌کنیم از CameraX یا برای موارد استفاده خاص از Camera2 استفاده کنید. ‫CameraX و Camera2 هر دو از Android 5.0 (سطح میانای برنامه‌سازی کاربردی ۲۱) و بالاتر پشتیبانی می‌کنند.

این درس نحوه ضبط ویدیو بااستفاده از برنامه‌های دوربین موجود را توضیح می‌دهد.

برنامه شما وظیفه‌ای دارد که باید انجام دهد و ادغام ویدیوها فقط بخش کوچکی از آن است. می‌خواهید با کمترین دردسر ویدیو بگیرید و قصد ندارید دوربین فیلم‌برداری را از نو اختراع کنید. خوشبختانه، اکثر دستگاه‌های مجهز به 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 برمی‌گرداند که به‌عنوان Uri به onActivityResult() تحویل داده شده است و به مکان ویدیو در فضای ذخیره‌سازی اشاره می‌کند. کد زیر این ویدیو را بازیابی می‌کند و آن را در VideoView نمایش می‌دهد.

کاتلین

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

جاوا

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