বিগত টিউটোরিয়ালে Launcher, Chooser কি তা জানার সাথে সাথে তাদের ব্যবহার দেখিয়েছি। আজকের টিউটোরিয়ালে আমরা Chooser ব্যবহার করে ক্যামেরা এবং ফটোগ্যালারী ফিচার আমাদের অ্যাপলিকেশনে অ্যাড করব। আপনি যদি ট্রাভেলিং অ্যাপলিকেশন, পিকচার শেয়ারিং অ্যাপ ইত্যাদি ধরনের অ্যাপ বানাতে আগ্রহী হন সেক্ষেত্রে আজকের টিউটোরিয়াল আপনার জন্য খুবই সহায়ক হবে। 24(1).JPG আজকের ডেমো অ্যাপলিকেশনে আমি অ্যাপ থেকে ক্যামেরা কল করে ছবি তোলা এবং ফটোগ্যালারি তে থাকা ছবি কিভাবে অ্যাপেলিকেশনের নির্দিষ্ট অংশে show করা যায় তা দেখাব। আগেই বলেছি প্রতিটা অ্যাপলিকেশন যখন ফোনে ডিপ্লয় করা হয় তখন তা নির্দিষ্ট sandbox এর আওতায় রান করে, এই sandbox এর কারনে third-party applications সরাসরি common data stores এ কোন পরিবর্তন আনতে পারে না। কিন্তু অনেক অ্যাপলিকেশন তৈরির সময় এই ধরনের common data stores এ একসেস/মডিফিকেশন এর প্রয়োজন হয়, আর সেজন্য উইন্ডোজফোন ডেভোলপাররা Launchers এবং chooser ফ্রেমওয়ার্ক নিয়ে আসে যা মূলত কিছু API এর কালেকশন। CameraCaptureTask (chooser) ব্যবহারে built-in ফোন ক্যামেরা চালু হয় যা third-party অ্যাপলিকেশনের মাধ্যমে ইউজার কে ছবি তুলতে দেয়। এজন্য Microsoft.Phone.Tasks namespace ব্যবহার করা হয়ে থাকে। CameraCaptureTask মূলত Chooser Base class থেকে ডিরাইভ করা হয়েছে। CameraCaptureTask এর Completed ইভেন্ট এবং Show মেথড কে অ্যাপলিকেশন থেকে হ্যান্ডেল করার মাধ্যমে ক্যামেরা কে অ্যাপলিকেশনের সাথে ইন্ট্রিগ্রেট করা হয়ে থাকে। Completed ইভেন্ট হ্যান্ডেল হলে PhotoResultevent argument এ একটি ছবির একটি Streamobject তৈরি হয়। জন্য প্রথমে নিচের মত একটি UI(User Interface) ডিজাইন করতে হবে যেখানে ২টি button এবং ১টি image কন্ট্রোলার থাকবে। 24(2).JPG এরপর code behind ফাইলে নিচের মত একটি namespace ডিক্লায়ার করতে হবে। 24(3).JPG মেইন ক্লাস এর ভিতর 24(4).JPG ডিক্লায়ার করতে হবে। প্রথম বাটনে নিচের মত কোড লিখি: 24(5).JPG এর ফলে button1 এ ক্লিক করলে ক্যামেরা অন হবে। Button2 এ ক্লিক করলে প্রথমে গ্যালারী দেখাবে এবং কোন নির্দিষ্ট ছবি সিলেক্ট করলে সেই ছবি অ্যাপলিকেশনে ইমেজ কন্ট্রোলার এ দেখাবে। এর জন্য নিচের মত কোড লিখি: 24(6).jpg এরপর আমাদের অ্যাপলিকেশন ডিবাগিং এর পালা। রিয়েল ডিভাইস না থাকলেও উইন্ডোজ ফোন ইমুলেটর দিয়ে এই আমাদের অ্যাপ সম্পূর্ন টেস্ট করা যাবে । অ্যাপলিকেশন রান করলে করার পর অ্যাপ এর বিভিন্ন স্টেট নিচে দেখান হল: 24(7).JPG প্রথম ছবিতে আমাদের অ্যাপ থেকে ক্যামেরা অন করা হচ্ছে এবং একটি ছবি তুলা হচ্ছে। পরবর্তীতে আমাদের ঐ একই অ্যাপ থেকে Photo Gallery বাটন ক্লিকের মাধ্যমে ফটোগ্যালারী ওপেন করে Camera Roll থেকে আমাদের তুলা ছবি সিলেক্ট করা হলে তা আমাদের অ্যাপে ইমেজ কন্ট্রোলারের ভিতর প্রদর্শিত হচ্ছে। 24(8).JPG এর ফলে button1 এ ক্লিক করলে ক্যামেরা অন হবে। Button2 এ ক্লিক করলে প্রথমে গ্যালারী দেখাবে এবং কোন নির্দিষ্ট ছবি সিলেক্ট করলে সেই ছবি অ্যাপলিকেশনে ইমেজ কন্ট্রোলার এ দেখাবে। এর জন্য নিচের মত কোড লিখি: