مقدمه‌ای بر Jetpack Media3

Jetpack Media3 خانه جدید کتابخانه‌های رسانه‌ای است که برنامه‌های Android را قادر می‌سازد تا تجربه‌های صوتی و تصویری غنی را نمایش دهند. Media3 معماری ساده‌ای با سفارشی‌سازی، قابلیت اطمینان، و بهینه‌سازی‌های قدرتمند براساس قابلیت‌های دستگاه ارائه می‌دهد تا پیچیدگی ناشی از تکه‌تکه‌سازی را ازبین ببرد.

این سند مقدمه‌ای بر میاناهای برنامه‌سازی کاربردی کلیدی برای پیاده‌سازی موارد استفاده بازپخش و ویرایش با Media3 ارائه می‌دهد.

مؤلفه‌های بازپخش

‫Media3 چندین مؤلفه کلیدی برای موارد استفاده از بازپخش ارائه می‌دهد. اگر با کتابخانه‌های رسانه‌ای قبلی Android کار کرده باشید، کلاس‌هایی که این مؤلفه‌ها را تشکیل می‌دهند برایتان آشنا خواهند بود.

نمودار زیر نشان می‌دهد که چگونه این مؤلفه‌ها در یک برنامه معمولی کنار هم قرار می‌گیرند.

مؤلفه‌های مختلف برنامه رسانه‌ای که از Media3 استفاده می‌کند، به‌دلیل اشتراک‌گذاری میاناها و کلاس‌ها، به چند روش ساده به یکدیگر متصل می‌شوند.
شکل ۱: مؤلفه‌های برنامه رسانه

پخش‌کننده رسانه

پخش‌کننده رسانه مؤلفه‌ای از برنامه شما است که امکان بازپخش فایل‌های رسانه‌ای را فراهم می‌کند. در Media3، موارد زیر را خواهید دید:

کلاس شرح نکته پیاده‌سازی
Player Player میانایی است که قابلیت‌های سنتی سطح بالا را برای پخش‌کننده رسانه تعریف می‌کند، مانند توانایی پخش، توقف موقت، و جستجو. در Media3، میانای Player یک میانای برنامه‌سازی کاربردی رایج است که توسط چندین مؤلفه، ازجمله MediaSession و MediaController، پیاده‌سازی یا استفاده می‌شود.
ExoPlayer ExoPlayer پیاده‌سازی پیش‌فرض میانای Player در Media3 است.

درباره Media3 ExoPlayer بیشتر بدانید

جلسه رسانه

جلسه رسانه روشی جهانی برای تعامل با پخش‌کننده رسانه ارائه می‌دهد. این به برنامه امکان می‌دهد بازپخش رسانه را برای منابع خارجی تبلیغ کند و درخواست‌های کنترل بازپخش را از منابع خارجی دریافت کند. در Media3، موارد زیر را خواهید دید:

کلاس شرح نکته پیاده‌سازی
MediaSession جلسه‌های رسانه به برنامه شما امکان می‌دهد با پخش‌کننده صوتی یا ویدیویی تعامل داشته باشد. آن‌ها بازپخش رسانه را به‌صورت خارجی تبلیغ می‌کنند و فرمان‌های بازپخش را از منابع خارجی دریافت می‌کنند. در Media3،‏ MediaSession به Player نیاز دارد تا فرمان‌ها را اجرا کند و وضعیت فعلی را به‌دست آورد.
MediaSessionService MediaSessionService جلسه رسانه و پخش‌کننده مرتبط با آن را در سرویسی جدا از Activity اصلی برنامه‌تان نگه می‌دارد تا بازپخش پس‌زمینه را تسهیل کند.
MediaController کلاس MediaController معمولاً برای ارسال فرمان‌ها از خارج از برنامه شما استفاده می‌شود، برای مثال، از برنامه‌های دیگر یا خود سیستم. فرمان‌ها به Player زیرین MediaSession مربوطه ارسال می‌شود. کلاس MediaController میانای Player را پیاده‌سازی می‌کند، اما هنگام فراخوانی یک روش، MediaController فرمان ارسال‌شده به MediaSession متصل را ارسال می‌کند. برنامه‌های کارخواه مثل «دستیار Google» می‌توانند از MediaController برای کنترل بازپخش در جلسه متصل‌شده استفاده کنند.
MediaLibraryService MediaLibraryService شبیه به MediaSessionService است، با این تفاوت که شامل APIهای اضافی است تا بتوانید کتابخانه محتوایتان را به برنامه‌های کارخواه ارائه دهید.
MediaBrowser کلاس MediaBrowser به کاربر اجازه می‌دهد در کتابخانه محتوای برنامه رسانه پیمایش کند و موارد موردنظر را برای پخش انتخاب کند. کلاس MediaBrowser هر دو رابط MediaController و Player را پیاده‌سازی می‌کند. مشابه MediaController، برنامه‌های کارخواه مانند Android Auto معمولاً MediaBrowser را پیاده‌سازی می‌کنند.

درباره Media3 MediaSession بیشتر بدانید

عناصر میانای کاربر

‫Media3 مؤلفه‌های میانای کاربر پیش‌فرضی برای مشاهده ویدیو و کنترل بازپخش ارائه می‌دهد.

کلاس شرح نکته پیاده‌سازی
PlayerView View پیش‌فرض برای نمایش ویدیو و کنترل‌های بازپخش. به ExoPlayer، MediaController، یا هر Player سفارشی دیگری متصل می‌شود.
PlayerSurface یک Composable که نشان‌دهنده یک طراحی اختصاصی است Surface برای نمایش ویدیو. به هر Player متصل می‌شود، اما کنترل‌های بازپخش ندارد. فقط برای رندر کردن قاب‌ها استفاده می‌شود و می‌توان اندازه آن را براساس انواع مختلف ContentScale تغییر داد. این و بسیاری از ترکیب‌شدنی‌های دیگر را می‌توانید در برنامه‌های کمکی میانای کاربر Compose پیدا کنید.

درباره میانای کاربر Media3 بیشتر بدانید

درحال ویرایش قطعات

‫Media3 شامل Transformer API برای موارد استفاده از ویرایش رسانه است، ازجمله:

  • پردازش صدا و ویدیو، مانند افزودن فیلترها و جلوه‌ها
  • مدیریت قالب‌های خاص، مانند ویدیو HDR و ویدیو حرکت آهسته
  • ترکیب، مانند ترکیب کردن چند فایل ورودی
  • صادر کردن برونداد نهایی به فایل
کلاس شرح نکته پیاده‌سازی
Transformer از کلاس Transformer برای شروع و توقف تبدیل‌ها و بررسی به‌روزرسانی‌های پیشرفت در تبدیل درحال اجرا استفاده کنید.
Effects شیء Effects مجموعه‌ای از جلوه‌های صوتی و تصویری است که روی فایل رسانه‌ای اعمال می‌شود. می‌توانید از ExoPlayer برای پیش‌دید جلوه‌های اضافه‌شده به فایل رسانه‌ای قبل‌از شروع فرایند صادر کردن استفاده کنید.
EditedMediaItem EditedMediaItem نشان‌دهنده فایل رسانه‌ای برای پردازش و ویرایش‌های اعمال‌شده روی آن است.

درباره Media3 Transformer بیشتر بدانید

ویدیو معرفی

برای آشنایی با Media3، این ویدیو را از مهندسانی که آن را ساخته‌اند تماشا کنید: