দ্রষ্টব্য: এই পৃষ্ঠাটি Camera2 প্যাকেজকে বোঝায়। আপনার অ্যাপের Camera2 থেকে নির্দিষ্ট, নিম্ন-স্তরের বৈশিষ্ট্যের প্রয়োজন না হলে, আমরা CameraX ব্যবহার করার পরামর্শ দিই। CameraX এবং Camera2 উভয়ই Android 5.0 (API স্তর 21) এবং উচ্চতর সমর্থন করে।
ফোল্ডেবল ডিভাইসে চালিত ক্যামেরা অ্যাপ্লিকেশনগুলিতে কাজ করার সময় ক্যামেরা বিকাশকারীরা অনন্য চ্যালেঞ্জের সম্মুখীন হতে পারে। স্মার্টফোনের বিপরীতে, যেখানে ডিসপ্লে ওরিয়েন্টেশন, ক্যামেরা ওরিয়েন্টেশন এবং ফেসিং সম্পর্কিত বেশ কিছু অনুমান প্রায়ই বৈধ, ফোল্ডেবল ডিভাইসের বিভিন্ন ফর্ম ফ্যাক্টর, ডিসপ্লে লেআউট এবং ক্যামেরা কম্বিনেশন থাকতে পারে।
স্মার্টফোনে সাধারণত ডিসপ্লের সাথে মেলে পোর্ট্রেট ওরিয়েন্টেশন সহ ক্যামেরা থাকে। যাইহোক, এটি নির্দিষ্ট ভাঁজযোগ্য রাজ্যের জন্য সত্য নাও হতে পারে। একটি আনফোল্ড স্ক্রিনে পোর্ট্রেট ওরিয়েন্টেশন সহ একটি সেন্সর এবং ল্যান্ডস্কেপ ওরিয়েন্টেশন সহ আরেকটি সেন্সর থাকতে পারে।
যদি আপনার ক্যামেরা অ্যাপ্লিকেশনটি একটি SurfaceTexture
বা একটি কাস্টম রেন্ডারিং পাইপলাইন ব্যবহার করে, ক্যামেরা সেন্সর অভিযোজন সম্পর্কে সচেতন হন।
এটি নিশ্চিত করে যে রেন্ডার করা বিষয়বস্তু সর্বদা শারীরিকভাবে খাড়া থাকে এবং পিক্সেলগুলি বর্গাকার থাকে, অনুভূমিক বা উল্লম্ব দিকগুলিতে প্রসারিত হওয়া এড়িয়ে যায়।
এই নির্দেশিকাটি ক্যামেরা2 ডেভেলপারদের কী বিবেচনা করতে হবে এবং বিভিন্ন ফোল্ডেবল ডিভাইস স্টেটের জন্য ক্যামেরা প্রিভিউ রেন্ডারিং সামঞ্জস্য করার পদক্ষেপগুলি সম্পর্কে তথ্য প্রদান করে।
ডিভাইসের অবস্থার সুইচগুলি কীভাবে ক্যামেরাকে প্রভাবিত করে
ভাঁজযোগ্য ডিভাইস অন্তর্ভুক্ত হতে পারে:
- দুই বা ততোধিক শারীরিক প্রদর্শন
- বেশ কিছু ফিজিক্যাল ক্যামেরা ডিভাইস
এই ডিভাইসগুলি ডিভাইসের অবস্থার উপর নির্ভর করে সক্রিয় হতে পারে। ডিভাইস স্টেট হ্যান্ডলিংকে সহজ করার জন্য, কিছু ডিভাইস দুটি বা ততোধিক ফিজিক্যাল সেন্সর নিয়ে গঠিত একটি লজিক্যাল ক্যামেরা প্রয়োগ করে।
যদি ডেভেলপাররা এই ধরনের একটি লজিক্যাল ক্যামেরা ডিভাইসে প্রিভিউ স্ট্রিমিং চালু করে, তাহলে ক্যামেরা স্বয়ংক্রিয়ভাবে নির্দিষ্ট ভাঁজ অবস্থার প্রতিক্রিয়ায় ভৌত ডিভাইসগুলির মধ্যে স্যুইচ করে।
উদাহরণস্বরূপ, দুটি প্রদর্শন সহ একটি ভাঁজযোগ্য ডিভাইস বিবেচনা করুন:
- পোর্ট্রেট অভিযোজনে একটি শারীরিক 'বাহ্যিক' সামনের ক্যামেরা সহ ভাঁজ অবস্থায় একটি নিয়মিত প্রতিকৃতি স্ক্রীন।
- একটি ভাঁজযোগ্য স্ক্রিন খোলা অবস্থায় চালু করা হয়েছে একটি 'অভ্যন্তরীণ' সামনের ফিজিক্যাল ক্যামেরার সাথে ল্যান্ডস্কেপ ওরিয়েন্টেশনের সাথে খোলা ডিসপ্লের সাপেক্ষে।
সামনের লজিক্যাল ক্যামেরা থেকে একটি অ্যাপ্লিকেশন স্ট্রিম করার সময় ব্যবহারকারী যখন ডিভাইসটিকে ভাঁজ করে বা উন্মোচন করে, তখন ডিভাইস বাস্তবায়ন প্রতিটি ডিভাইস স্টেট সুইচের প্রতিক্রিয়া হিসাবে অভ্যন্তরীণ এবং বাইরের শারীরিক সেন্সরগুলির মধ্যে স্যুইচ করতে পারে।
ডিসপ্লে সুইচের জন্য অ্যাপ্লিকেশনটিকে তার UI সামঞ্জস্য করার প্রয়োজন হতে পারে।
যেকোনো UI সামঞ্জস্যের পাশাপাশি, বিকাশকারীদের সক্রিয় শারীরিক ক্যামেরার ক্ষেত্রে ক্যামেরা প্রিভিউ কীভাবে রেন্ডার হয় তা সামঞ্জস্য করতে হবে।
শারীরিক ক্যামেরা ডিভাইস সুইচ
লজিক্যাল ক্যামেরা ডিভাইস ইন্টারফেস ফিজিক্যাল ক্যামেরা সুইচগুলি পরিচালনা করার জন্য প্রয়োজনীয় API প্রদান করে। ডেভেলপারদের অবশ্যই সক্রিয় ফিজিক্যাল আইডির মান পর্যবেক্ষণ করতে হবে।
ভাঁজ করা যায় এমন ডিভাইসগুলিতে সক্রিয় ফিজিক্যাল আইডি ক্যাপচারের ফলাফল বিভিন্ন ভাঁজযোগ্য অবস্থার সুইচ যেমন ভাঁজ করা এবং খোলার প্রতিক্রিয়া হিসাবে পরিবর্তিত হতে পারে।
এই ধরনের ইভেন্টগুলিতে, বিকাশকারীদের অবশ্যই বর্তমান সক্রিয় ফিজিক্যাল আইডি ব্যবহার করতে হবে এবং সংশ্লিষ্ট ক্যামেরা বৈশিষ্ট্যগুলি পরীক্ষা করতে হবে।
দুটি সবচেয়ে গুরুত্বপূর্ণ ক্যামেরা বৈশিষ্ট্য যা সম্ভাব্যভাবে পরিবর্তন করতে পারে এবং প্রিভিউ রেন্ডারিংকে প্রভাবিত করতে পারে তা হল সেন্সর ওরিয়েন্টেশন এবং লেন্স ফেস করা ।
যদি আপনার অ্যাপ্লিকেশনের প্রিভিউ রেন্ডারিং পাইপলাইন তার চূড়ান্ত রূপান্তর ম্যাট্রিক্স গণনা করার জন্য স্ট্যাটিক ক্যামেরা প্যারামিটারের উপর নির্ভর করে, নিশ্চিত করুন যে আপনি বর্তমান মানগুলি পাস করেছেন এবং গ্রাফিক্স রূপান্তরগুলি আপডেট করেছেন৷
ক্যামেরা প্রিভিউ পাইপলাইন এবং কীভাবে রূপান্তর গণনা করা হয় সে সম্পর্কে গভীরভাবে বোঝার জন্য, ক্যামেরা প্রিভিউ গাইড দেখুন।
অতিরিক্ত অবৈধ অনুমান
ক্যামেরা চরিত্রগত মান ক্যাশিং সুপারিশ করা হয় না.
আপনি অনুমান করতে পারবেন না যে ক্যামেরার বৈশিষ্ট্যগুলি স্থির থাকবে, যেহেতু ডিভাইসটি ভাঁজ করা বা উন্মোচিত হলে বৈশিষ্ট্যগুলি পরিবর্তন হতে পারে৷ সেই কারণে, আপনার ক্যামেরা বৈশিষ্ট্যগুলি সংরক্ষণ এবং পুনরায় ব্যবহার করা উচিত নয়৷ পরিবর্তে, প্রতিবার ক্যামেরার বৈশিষ্ট্যগুলি পরীক্ষা করুন।
সেই ক্ষেত্রে বিবেচনা করুন যেখানে একটি ক্যামেরা অ্যাপ্লিকেশন বাইরের সামনের ডিসপ্লেতে শুরু হয় এবং বর্তমান সামনে এবং পিছনের ক্যামেরার বৈশিষ্ট্যগুলিকে ক্যাশে করে। যদি অ্যাপ্লিকেশনটি অভ্যন্তরীণ ডিসপ্লেতে পুনরায় চালু হয়, সক্রিয় সামনের ফিজিক্যাল সেন্সরের একটি ভিন্ন অভিযোজন থাকতে পারে, সম্ভাব্য অবাঞ্ছিত পূর্বরূপ রেন্ডার পার্শ্ব প্রতিক্রিয়া ট্রিগার করে।