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