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

پخش کننده رسانه
پخش کننده رسانه بخشی از برنامه شما است که امکان پخش فایل های رسانه ای را فراهم می کند. در Media3، شما خواهید یافت:
| کلاس | توضیحات | یادداشت اجرایی | 
|---|---|---|
| Player | Playerرابطی است که قابلیت های سنتی سطح بالا را برای پخش کننده رسانه تعریف می کند، مانند توانایی پخش، مکث و جستجو. | در Media3، رابط Playerیک API مشترک است که توسط چندین مؤلفه، از جمله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 Assistant می توانند از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 UI یافت. | 
درباره رابط کاربری Media3 بیشتر بدانید
ویرایش مولفه ها
Media3 شامل API های Transformer برای موارد استفاده ویرایش رسانه است، از جمله:
- پردازش صدا و تصویر، مانند افزودن فیلترها و افکت ها
- مدیریت فرمت های خاص، مانند ویدیوی HDR و ویدیوی حرکت آهسته
- ترکیب بندی، مانند ترکیب چندین فایل ورودی
- صادرات خروجی نهایی به یک فایل
| کلاس | توضیحات | یادداشت اجرایی | 
|---|---|---|
| Transformer | از کلاس Transformerبرای شروع و توقف تبدیل ها و بررسی به روز رسانی های پیشرفت در یک تبدیل در حال اجرا استفاده کنید. | |
| Effects | یک شیء Effectsمجموعه ای از جلوه های صوتی و تصویری برای اعمال بر روی یک آیتم رسانه ای است. | می توانید از ExoPlayerبرای پیش نمایش افکت های اضافه شده به یک آیتم رسانه قبل از شروع فرآیند صادرات استفاده کنید. | 
| EditedMediaItem | یک EditedMediaItemنشان دهنده یک آیتم رسانه برای پردازش و ویرایش هایی است که باید روی آن اعمال شود. | 
درباره Media3 Transformer بیشتر بدانید
ویدیوی معرفی
برای آشنایی با Media3 توسط مهندسانی که آن را ساخته اند، ویدیوی زیر را ببینید.
لینک های مفید
- مرکز توسعه دهندگان رسانه
-  اسناد ExoPlayer
- راهنمای مهاجرت
- AndroidX Media3 در GitHub
- برنامه نمونه جلسه رسانه Media3
- نمونه برنامه پخش موسیقی جهانی اندروید
