ম্যানেজার কনসেপ্ট প্রিলোড করুন

প্রিলোড ম্যানেজার আপনাকে ব্যবহারকারীদের আরও ভালো অভিজ্ঞতা দিতে সাহায্য করে। এটি তাদের দ্রুত কন্টেন্ট পরিবেশন করে, যাতে তারা এক আইটেম থেকে অন্য আইটেমে স্যুইচ করার সময় কম অপেক্ষা করতে হয়। এছাড়াও, এটি আপনাকে প্রতিটি আইটেম প্রিলোড করার সময়কাল এবং র‍্যাংকিং কাস্টমাইজ করতে দেয়।

সোশ্যাল মিডিয়াতে একটি সাধারণ পরিস্থিতি হল, কোনও অ্যাপ ব্যবহারকারীকে মিডিয়া পছন্দের তালিকা বা ক্যারোজেল দেখায়। যেমন, কোনও অ্যাপ ছোট ভিডিওর ক্যারোজেল দেখাতে পারে। একটি ভিডিও শেষ হলে, অ্যাপটি পরের ভিডিওতে চলে যায়। আর ব্যবহারকারী যদি যে ভিডিওটি দেখছেন সেটি পছন্দ না করেন, তাহলে তিনি সোয়াইপ করে পরবর্তী ভিডিও বা আগের ভিডিওতে চলে যেতে পারেন।

আপনি ভিডিও কন্টেন্ট প্রিলোড না করলে, ব্যবহারকারীর অভিজ্ঞতা খারাপ হতে পারে। ব্যবহারকারী কিছু মিডিয়া দেখা শেষ করেন এবং তারপর পরবর্তী মিডিয়া লোড হওয়ার জন্য অপেক্ষা করতে হয়।

অন্যদিকে, আপনি যদি খুব বেশি কন্টেন্ট প্রিলোড করেন, তাহলে এমন কন্টেন্ট লোড করতে পাওয়ার ও নেটওয়ার্ক ব্যান্ডউইথ নষ্ট হয় যা ব্যবহারকারী হয়ত কখনও চালাবেনই না।

DefaultPreloadManager আপনার অ্যাপকে এইসব সমস্যার মধ্যে ভারসাম্য বজায় রাখতে সাহায্য করে। প্রিলোড ম্যানেজার আপনার অ্যাপের সাথে কাজ করে প্রতিটি মিডিয়া আইটেম কতটা গুরুত্বপূর্ণ তা নির্ধারণ করে এবং আগে থেকে উপযুক্ত পরিমাণ লোড করে।

শ্রম বিভাগ

আপনি DefaultPreloadManager ব্যবহার করলে, কিছু কাজ আপনার কোড এবং কিছু কাজ প্রিলোড ম্যানেজার করে।

আপনার অ্যাপকে নিম্নলিখিত কাজগুলি করতে হবে:

প্রিলোড ম্যানেজার নিম্নলিখিত কাজগুলি করে:

  • আপনার অ্যাপ এতে যেসব মিডিয়া আইটেম যোগ করেছে, এটি সেগুলির ট্র্যাক রাখে।
  • প্রতিবার এর অগ্রাধিকার আপডেট করা হলে, এটি আপনার অ্যাপের মাধ্যমে প্রয়োগ করা একটি TargetPreloadStatusControl কল করে আপনার অ্যাপকে কোয়েরি করে। প্রতিটি মিডিয়া আইটেমের কতটা লোড করতে হবে তা খুঁজে বের করতে এটি কল করে।
  • অ্যাপে কোয়েরি করার পরে, এটি প্রতিটি মিডিয়া আইটেমের উপযুক্ত পরিমাণ প্রিলোড করে। প্রিলোড ম্যানেজার ঠিক করে যে কোন ক্রমে আইটেম লোড করা হবে। এটি ব্যবহারকারী যে আইটেমটি চালাচ্ছেন তার সবচেয়ে কাছের আইটেমগুলিকে অগ্রাধিকার দেয়।
  • অ্যাপ কন্টেন্টের জন্য অনুরোধ করলে, প্রিলোড ম্যানেজার আগে থেকে লোড করা কন্টেন্ট সহ MediaSource প্রদান করে।

প্রিলোড ম্যানেজার ওয়ার্কফ্লো

এই বিভাগে প্রিলোড ম্যানেজার ব্যবহার করে এমন অ্যাপের সাধারণ ওয়ার্কফ্লো সম্পর্কে বর্ণনা করা হয়েছে। এই উদাহরণে, আমরা ধরে নিচ্ছি যে অ্যাপটি ছোট ভিডিওর একটি ক্যারোজেল দেখায়। বেছে নেওয়া ভিডিও অটোমেটিক চলতে থাকে, তবে ব্যবহারকারী ক্যারোজেল যেকোনও দিকে স্ক্রল করতে পারেন, যার ফলে যে ভিডিওটি চলছিল সেটি বন্ধ হয়ে যায় এবং যে ভিডিওতে স্ক্রল করা হয়েছে সেটি চলতে শুরু করে।

এইসব ধাপের ব্যাপারে নিম্নলিখিত পৃষ্ঠায় বিস্তারিত আলোচনা করা হয়েছে।

  1. অ্যাপটি একটি টার্গেট প্রিলোড স্ট্যাটাস কন্ট্রোল তৈরি করে। প্রতিটি মিডিয়া আইটেমের কতটা লোড করতে হবে তা জানতে প্রিলোড ম্যানেজার এই কন্ট্রোলকে কোয়েরি করে।
  2. অ্যাপটি একটি DefaultPreloadManager.Builder তৈরি করে এবং টার্গেট প্রিলোড স্ট্যাটাস কন্ট্রোল পাস করে। অ্যাপটি তখন প্রিলোড ম্যানেজার তৈরি করতে বিল্ডার ব্যবহার করে।
  3. অ্যাপটি প্রিলোড ম্যানেজারে মিডিয়া আইটেম যোগ করে। অ্যাপটি প্রতিটি আইটেমের জন্য একটি ইনডেক্স প্রদান করে, যা ক্যারোজেলে আইটেমের অবস্থান নির্দিষ্ট করে।
  4. প্রতিটি মিডিয়া আইটেমের জন্য, প্রিলোড ম্যানেজার টার্গেট প্রিলোড কন্ট্রোলকে কল করে আইটেমের কতটা লোড করা উচিত তা কোয়েরি করে। টার্গেট প্রিলোড কন্ট্রোল নির্দিষ্ট সময়সীমার কন্টেন্ট লোড করতে, আইটেমের মেটাডেটা ফেচ করতে অথবা এই মুহূর্তে আইটেমের কোনও কিছুই ফেচ না করতে বলতে পারে। প্রিলোড ম্যানেজার এই তথ্য পাওয়ার পরে, এটি মিডিয়া কন্টেন্ট লোড করা শুরু করে।
  5. ব্যবহারকারী কন্টেন্ট চালানো শুরু করলে, অ্যাপটি প্রিলোড ম্যানেজারকে কল করে সেই মিডিয়া আইটেমের জন্য MediaSource-এর অনুরোধ করে। এছাড়াও, কোন মিডিয়া আইটেম চালানো হচ্ছে তা প্রিলোড ম্যানেজারকে জানাতে, অ্যাপটি setCurrentPlayingIndex() কল করে, যাতে মিডিয়া আইটেমের অগ্রাধিকার আপডেট করা যায়।
  6. প্রিলোড ম্যানেজারের অগ্রাধিকার আপডেট করা হলে, এটি প্রতিটি আইটেমের কতটা লোড করতে হবে তা খুঁজে বের করতে আবার টার্গেট প্রিলোড কন্ট্রোলকে কল করে।
  7. অ্যাপটি ক্যারোজেল বন্ধ করলে, এটি রিসোর্স খালি করার জন্য প্রিলোড ম্যানেজার রিলিজ করে।