Camera অবজেক্ট এর একটি ইনসটেন্স পাওয়া হচ্ছে সরাসরি ক্যামেরা নিয়ন্ত্রন প্রক্রিয়ার প্রথম ধাপ। যেহেতু অ্যান্ড্রয়েডের নিজস্ব ক্যামেরা অ্যাপলিকেশন করে থাকে, ক্যামেরাতে প্রবেশ করার প্রস্তাবিত উপায় হচ্ছে একটি পৃথক থ্রেড যা onCreate()থেকে শুরু হয় তার উপর Camera ওপেন করা। এই অ্যাপ্রোচ একটি ভালো ধারনা যেহেতু এটা কিছু সময় ব্যয় করতে পারে এবং ইউজার ইন্টারফেস থ্রেড কে অগ্রসর হতে বাধা দিতে পারে। একটি আরও মৌলিক বাস্তায়নের মধ্যে, কোড পূর্নব্যবহার করতে সঞ্চালন করতে এবং নিয়ন্ত্রণ প্রবাহ ধরে রাখতে ক্যামেরা ওপেন করা onResume()মেথডে বিলম্ব করতে পারে।
Camera.open()কল করা একটি ব্যতিক্রম করতে পারে যদি ক্যামেরা ইতিমধ্যে অন্য অ্যাপ কর্তৃক একটি ব্যবহারের মধ্যে থাকে, তাই আমারা এটাকে ঃৎু ব্লকে যুক্ত করে রেখে দিতে পারি।
private boolean safeCameraOpen(int id) {
boolean qOpened = false;
try {
releaseCameraAndPreview();
mCamera = Camera.open(id);
qOpened = (mCamera != null);
} catch (Exception e) {
Log.e(getString(R.string.app_name), "failed to open Camera");
e.printStackTrace();
}
return qOpened;
}
private void releaseCameraAndPreview() {
mPreview.setCamera(null);
if (mCamera != null) {
mCamera.release();
mCamera = null;
}
}
যদি এপিআই লেভেল ৯ হয়, ক্যামেরা ফ্রেমওয়ার্ক বহুমুখি ক্যামেরা সাপোর্ট করে। যদি আপনি লিগ্যাসি এপিআই ব্যবহার করেন এবং একটি আরগুমেন্ট ছাড়াই open()কল করেন, আপনি প্রথম রিয়ার ফেসিং ক্যামেরা পাবেন।