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

ডিভাইসের ডিফল্ট ক্যামেরা অ্যাপ্লিকেশন ব্যবহার করে ছবি বা ভিডিওর মতো সাধারণ কাজ করার জন্য কোনো ক্যামেরা লাইব্রেরি ইন্টিগ্রেট করার প্রয়োজন নেই। এর পরিবর্তে, একটি 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() মেথডকে কল করে। এই resolveActivity() ফাংশনটি প্রথম সেই অ্যাক্টিভিটি কম্পোনেন্টটি রিটার্ন করে যা Intent টি হ্যান্ডেল করতে পারে। আপনি এমন একটি Intent কল করছেন যা আপনার অ্যাপ ক্র্যাশ করবে না, তা নিশ্চিত করতে এই চেকটি করুন।

অতিরিক্ত সম্পদ

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