Jetpack Media3-এর সাথে প্রাথমিক পরিচয়

Jetpack Media3 হল মিডিয়া লাইব্রেরির নতুন হোম যা Android অ্যাপকে উন্নত অডিও ও ভিজ্যুয়াল অভিজ্ঞতা দেখাতে সাহায্য করে। Media3-তে শক্তিশালী কাস্টমাইজেশন, নির্ভরযোগ্যতা এবং ডিভাইসের ক্ষমতার উপর ভিত্তি করে অপ্টিমাইজেশন সহ একটি সহজ আর্কিটেকচার অফার করে যাতে ফ্র্যাগমেন্টেশনের সাথে আসা জটিলতা দূর করা যায়।

এই ডকুমেন্ট Media3-এর মাধ্যমে প্লেব্যাক ও এডিটিংয়ের ব্যবহারিক ক্ষেত্র প্রয়োগ করার জন্য গুরুত্বপূর্ণ API-এর ভূমিকা প্রদান করে।

প্লেব্যাক কম্পোনেন্ট

Media3 প্লেব্যাক ব্যবহারের ক্ষেত্রে বেশ কিছু মূল কম্পোনেন্ট অফার করে। আপনি যদি আগে Android মিডিয়া লাইব্রেরি ব্যবহার করে থাকেন, তাহলে এইসব কম্পোনেন্ট তৈরি করা ক্লাসগুলি আপনার পরিচিত হবে।

নিম্নলিখিত ডায়াগ্রামটি দেখায় যে কীভাবে এই কম্পোনেন্টগুলি একটি সাধারণ অ্যাপে একসাথে কাজ করে।

Media3 ব্যবহার করে এমন মিডিয়া অ্যাপের বিভিন্ন কম্পোনেন্ট ইন্টারফেস ও ক্লাস শেয়ার করার কারণে
  সহজেই একে অপরের সাথে
   কানেক্ট করে।
ছবি ১: মিডিয়া অ্যাপ কম্পোনেন্ট

মিডিয়া প্লেয়ার

মিডিয়া প্লেয়ার হল আপনার অ্যাপের একটি কম্পোনেন্ট যা মিডিয়া ফাইল প্লেব্যাক করার অনুমতি দেয়। Media3-তে আপনি এগুলি পাবেন:

ক্লাস বিবরণ প্রয়োগ সংক্রান্ত নোট
Player Player হল এমন একটি ইন্টারফেস যা মিডিয়া প্লেয়ারের জন্য চিরাচরিত হাই-লেভেল ক্ষমতা নির্ধারণ করে, যেমন চালানো, পজ করা এবং খোঁজার ক্ষমতা। Media3-তে, Player ইন্টারফেস হল একটি সাধারণ API যা MediaSession এবং MediaController-এর মতো বিভিন্ন কম্পোনেন্ট দ্বারা প্রয়োগ বা ব্যবহার করা হয়।
ExoPlayer ExoPlayer হল Media3-তে Player ইন্টারফেসের ডিফল্ট ইমপ্লিমেন্টেশন।

Media3 ExoPlayer সম্পর্কে আরও জানুন

মিডিয়া সেশন

মিডিয়া সেশন, মিডিয়া প্লেয়ারের সাথে ইন্টার‌্যাক্ট করার একটি সর্বজনীন উপায় প্রদান করে। এটি অ্যাপকে বাহ্যিক উৎসে মিডিয়া প্লেব্যাক বিজ্ঞাপন করতে এবং বাহ্যিক উৎস থেকে প্লেব্যাক কন্ট্রোল অনুরোধ পেতে দেয়। Media3-তে আপনি এগুলি পাবেন:

ক্লাস বিবরণ প্রয়োগ সংক্রান্ত নোট
MediaSession মিডিয়া সেশন আপনার অ্যাপকে অডিও বা ভিডিও প্লেয়ারের সাথে ইন্টার‍্যাক্ট করার অনুমতি দেয়। তারা বাহ্যিকভাবে মিডিয়া প্লেব্যাক বিজ্ঞাপন করে এবং বাহ্যিক উত্স থেকে প্লেব্যাক কমান্ড গ্রহণ করে। Media3-তে, কমান্ড এক্সিকিউট করতে এবং বর্তমান স্ট্যাটাস পেতে MediaSession-এর Player প্রয়োজন।
MediaSessionService MediaSessionService ব্যাকগ্রাউন্ডে প্লেব্যাক করার সুবিধা দিতে, আপনার অ্যাপের মূল Activity থেকে আলাদা একটি পরিষেবায় মিডিয়া সেশন ও তার সাথে সম্পর্কিত প্লেয়ারকে ধরে রাখে।
MediaController MediaController ক্লাস সাধারণত আপনার অ্যাপের বাইরে থেকে কমান্ড পাঠাতে ব্যবহার করা হয়, যেমন, অন্যান্য অ্যাপ বা সিস্টেম থেকে। কমান্ডগুলি সংশ্লিষ্ট MediaSession-এর অন্তর্নিহিত Player-এ পাঠানো হয়। MediaController ক্লাস Player ইন্টারফেস প্রয়োগ করে, কিন্তু কোনও পদ্ধতি কল করার সময়, MediaController কানেক্ট করা MediaSession-এ পাঠানো কমান্ড পাঠায়। Google Assistant-এর মতো ক্লায়েন্ট অ্যাপ কানেক্ট করা সেশনে প্লেব্যাক নিয়ন্ত্রণ করতে MediaController ব্যবহার করতে পারে।
MediaLibraryService MediaLibraryService হল MediaSessionService-এর মতোই, তবে এতে অতিরিক্ত API থাকে যাতে আপনি ক্লায়েন্ট অ্যাপে আপনার কন্টেন্ট লাইব্রেরি দেখাতে পারেন।
MediaBrowser MediaBrowser ক্লাস ব্যবহারকারীকে মিডিয়া অ্যাপের কন্টেন্ট লাইব্রেরি নেভিগেট করতে এবং কোন আইটেম চালাতে হবে তা বেছে নিতে দেয়। MediaBrowser ক্লাস MediaController এবং Player ইন্টারফেস, দুটিই প্রয়োগ করে। MediaController-এর মতো, Android Auto-এর মতো ক্লায়েন্ট অ্যাপ সাধারণত MediaBrowser প্রয়োগ করে।

Media3 MediaSession সম্পর্কে আরও জানুন

UI কম্পোনেন্ট

Media3 ভিডিও দেখা ও প্লেব্যাক কন্ট্রোল করার জন্য ডিফল্ট UI কম্পোনেন্ট প্রদান করে।

ক্লাস বিবরণ প্রয়োগ সংক্রান্ত নোট
PlayerView ভিডিও ও প্লেব্যাক কন্ট্রোল দেখানোর জন্য ডিফল্ট View। ExoPlayer, MediaController বা অন্য কোনও কাস্টম Player-এর সাথে কানেক্ট করে।
PlayerSurface ভিডিও দেখানোর জন্য Surface ডেডিকেটেড ড্রয়িংকে দেখায় এমন কম্পোজ করার উপযুক্ত আইটেম। যেকোনও Player-এর সাথে কানেক্ট করে, তবে এতে প্লেব্যাক কন্ট্রোল থাকে না। শুধুমাত্র ফ্রেম রেন্ডার করার জন্য ব্যবহার করা হয় এবং বিভিন্ন ContentScale ধরন অনুযায়ী ছোট বড় করা যেতে পারে। এটি এবং আরও অনেক কম্পোজেবল Compose UI ইউটিলিটি-তে পাওয়া যাবে।

Media3 UI সম্পর্কে আরও জানুন

কম্পোনেন্ট এডিট করা হচ্ছে

Media3-তে মিডিয়া এডিটিংয়ের জন্য Transformer API অন্তর্ভুক্ত আছে, যার মধ্যে রয়েছে:

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

Media3 Transformer সম্পর্কে আরও জানুন

ভূমিকা সংক্রান্ত ভিডিও

Media3-এর সাথে পরিচিত হতে, যারা এটি তৈরি করেছেন সেইসব ইঞ্জিনিয়ারদের এই ভিডিওটি দেখুন: