ক্যামেরা ইনটেন্ট

ডিভাইসের ডিফল্ট ক্যামেরা অ্যাপ্লিকেশন ব্যবহার করে ফটো বা ভিডিও ক্যাপচার করার মতো ক্যামেরার প্রাথমিক অ্যাকশন পারফর্ম করতে, আপনাকে ক্যামেরা লাইব্রেরি-এর সাথে ইন্টিগ্রেট করতে হবে না। পরিবর্তে, Intent ব্যবহার করুন।

ক্যামেরা অ্যাপ দিয়ে ফটো তুলুন

Android, Intent কল করার মাধ্যমে অন্যান্য অ্যাপ্লিকেশনকে অ্যাকশন ডেলিগেট করে। এই প্রসেসে তিনটি অংশ রয়েছে: Intent, এক্সটার্নাল Activity শুরু করার জন্য কল এবং আপনার অ্যাক্টিভিটিতে ফোকাস ফিরে এলে ছবির ডেটা ম্যানেজ করার জন্য কিছু কোড।

এখানে একটি ফাংশন দেওয়া হল যা ফটো ক্যাপচার করার জন্য Intent-কে আহ্বান করে।

Kotlin

val REQUEST_IMAGE_CAPTURE = 1
 
private fun dispatchTakePictureIntent() {
    val takePictureIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
    try {
        startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE)
    } catch (e: ActivityNotFoundException) {
        // display error state to the user
    }
}

জাভা

static final int REQUEST_IMAGE_CAPTURE = 1;
 
private void dispatchTakePictureIntent() {
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    try {
        startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
    } catch (ActivityNotFoundException e) {
        // display error state to the user
    }
}

ক্যামেরা অ্যাপের মাধ্যমে ভিডিও রেকর্ড করা

এছাড়াও, ভিডিও ক্যাপচার করার জন্য আপনি Intent চালু করতে পারেন।

Kotlin

val REQUEST_VIDEO_CAPTURE = 1
 
private fun dispatchTakeVideoIntent() {
    Intent(MediaStore.ACTION_VIDEO_CAPTURE).also { takeVideoIntent ->
        takeVideoIntent.resolveActivity(packageManager)?.also {
            startActivityForResult(takeVideoIntent, REQUEST_VIDEO_CAPTURE)
        } ?: run {
          //display error state to the user
        }
    }
}

জাভা

static final int REQUEST_VIDEO_CAPTURE = 1;
 
private void dispatchTakeVideoIntent() {
    Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
    if (takeVideoIntent.resolveActivity(getPackageManager()) != null) {
        startActivityForResult(takeVideoIntent, REQUEST_VIDEO_CAPTURE);
    }
    else {
      //display error state to the user
    }
}

startActivityForResult() পদ্ধতিটি এমন একটি শর্ত দ্বারা সুরক্ষিত যা resolveActivity()-কে কল করে, যা প্রথম অ্যাক্টিভিটি কম্পোনেন্ট ফিরিয়ে দেয় যা Intent-কে ম্যানেজ করতে পারে। আপনি এমন একটি Intent কল করছেন যা আপনার অ্যাপকে ক্র্যাশ করবে না তা নিশ্চিত করতে এই চেকটি করুন।

অতিরিক্ত রিসোর্স

ক্যামেরার প্রাথমিক অ্যাকশনের জন্য, Intent ব্যবহার করুন। অন্যথায়, সাধারণ ছবি বা ভিডিও ক্যাপচার করার চেয়ে জটিল কিছুর জন্য Camera2 এবং CameraX লাইব্রেরি ব্যবহার করার সাজেশন দেওয়া হয়।