ক্যামেরার উদ্দেশ্য

ডিভাইসের ডিফল্ট ক্যামেরা অ্যাপ্লিকেশন ব্যবহার করে একটি ফটো বা ভিডিও ক্যাপচার করার মতো মৌলিক ক্যামেরা ক্রিয়া সম্পাদন করতে, আপনাকে ক্যামেরা লাইব্রেরির সাথে একীভূত করার প্রয়োজন নেই৷ পরিবর্তে, একটি Intent ব্যবহার করুন।

একটি ক্যামেরা অ্যাপ দিয়ে একটি ছবি তুলুন

অ্যান্ড্রয়েড একটি Intent আহ্বান করে অন্যান্য অ্যাপ্লিকেশনগুলিতে ক্রিয়া অর্পণ করে৷ এই প্রক্রিয়াটি তিনটি অংশ জড়িত: Intent নিজেই, বাহ্যিক Activity শুরু করার জন্য একটি কল এবং যখন ফোকাস আপনার কার্যকলাপে ফিরে আসে তখন ইমেজ ডেটা পরিচালনা করার জন্য কিছু কোড৷

এখানে একটি ফাংশন যা একটি ফটো ক্যাপচার করার জন্য একটি Intent আহ্বান করে৷

কোটলিন

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 আহ্বান করতে পারেন৷

কোটলিন

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 লাইব্রেরি ব্যবহার করার পরামর্শ দেওয়া হয়।