Jetpack Media3 خانه جدید کتابخانههای رسانهای است که برنامههای Android را قادر میسازد تا تجربههای صوتی و تصویری غنی را نمایش دهند. Media3 معماری سادهای با سفارشیسازی، قابلیت اطمینان، و بهینهسازیهای قدرتمند براساس قابلیتهای دستگاه ارائه میدهد تا پیچیدگی ناشی از تکهتکهسازی را ازبین ببرد.
این سند مقدمهای بر میاناهای برنامهسازی کاربردی کلیدی برای پیادهسازی موارد استفاده بازپخش و ویرایش با Media3 ارائه میدهد.
مؤلفههای بازپخش
Media3 چندین مؤلفه کلیدی برای موارد استفاده از بازپخش ارائه میدهد. اگر با کتابخانههای رسانهای قبلی Android کار کرده باشید، کلاسهایی که این مؤلفهها را تشکیل میدهند برایتان آشنا خواهند بود.
نمودار زیر نشان میدهد که چگونه این مؤلفهها در یک برنامه معمولی کنار هم قرار میگیرند.
پخشکننده رسانه
پخشکننده رسانه مؤلفهای از برنامه شما است که امکان بازپخش فایلهای رسانهای را فراهم میکند. در 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، این ویدیو را از مهندسانی که آن را ساختهاند تماشا کنید:
پیوندهای مفید
- مرکز توسعهدهندگان رسانه
ExoPlayerسند- راهنمای انتقال
- AndroidX Media3 در GitHub
- برنامه نمونه جلسه رسانه Media3
- برنامه نمونه Universal Android Music Player