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