کتابخانه Jetpack تصویر در تصویر (PiP) یک راه حل ساده و قوی برای توسعه دهندگان برنامه های اندروید ارائه می دهد تا قابلیت PiP را به ویژه برای پخش رسانه، ارتباط تصویری و برنامه های ناوبری پیاده سازی کنند. این کتابخانه با ارائه یک API یکپارچه، به حذف کدهای تکراری و اشکالات رایج درون برنامه ای کمک می کند و کیفیت کلی تجربه کاربری PiP را بهبود می بخشد.
کتابخانه PiP Jetpack با پرداختن به چندین چالش کلیدی و ناسازگاری در اکوسیستم اندروید، APIهای PiP موجود را تسهیل میکند:
- پراکندگی سیستم عامل : این کتابخانه به طور خودکار تفاوتهای موجود در فراخوانیهای PiP API را در نسخههای مختلف اندروید، مانند استفاده از
enterPictureInPictureModeقبل از اندروید ۱۲ وisAutoEnterEnabledبعد از آن، مدیریت میکند، بنابراین توسعهدهندگان نیازی به مدیریت تفاوتهای نسخه ندارند. - پارامترهای نادرست PiP : این یک راه حل یکپارچه برای تنظیم صحیح پارامترهای PiP، به عنوان مثال
setSourceRectHint، برای ایجاد انیمیشنهای روان و با کیفیت بالا در حین پخش رسانه ارائه میدهد. - فراخوانیهای وضعیت یکپارچه PiP : این روش
onPictureInPictureModeChangedوonPictureInPictureUiStateChangedرا در یک رابط فراخوانی واحد و یکپارچه (PictureInPictureDelegate.OnPictureInPictureEventListener) برای مدیریت سادهتر وضعیت و رابط کاربری، ادغام میکند. - کاهش کدهای تکراری : این کتابخانه با ارائه مجموعههای از پیش تعریفشدهای از
RemoteActionsبرای موارد استفاده رایج، مانند کنترلهای پخش و اقدامات تماس ویدیویی، میزان کدهای تکراری و تکراری را کاهش میدهد. - آیندهنگر : ویژگیهای بیشتر PiP از طریق کتابخانه Jetpack ارائه میشود و به کاربران اجازه میدهد تا با حداقل تلاش یا بدون هیچ تلاشی به قابلیتهای اضافی دسترسی پیدا کنند.
جتپک را بپذیرید
برای استفاده از کتابخانه Jetpack، پیادهسازی PiP سفارشی موجود خود را با APIهای کتابخانه Jetpack جایگزین کنید. پیچیدگی و هزینه استفاده از آن بسته به پیادهسازی فعلی برنامه متفاوت خواهد بود.
بخشهای زیر برخی از موارد استفاده معمول PiP و مراحل پیادهسازی لازم را شرح میدهند:
ناوبری
این برنامه، کتابخانه را از وضعیت فعال یا غیرفعال بودن ناوبری مطلع میکند و نسبت ابعاد را تنظیم میکند. کتابخانه Jetpack بقیه کارها را انجام میدهد.
تفاوتهای کلیدی:
- نیازی به تمایز قائل شدن بین ورود خودکار و ورود قدیمی در سمت برنامه نیست.
- رابطهای فراخوانی یکپارچه.
- سازنده جدید
PictureInPictureParamsبرای سازگاری با نسخههای قبلی.
تماس تصویری
این برنامه، کتابخانه را از وضعیت فعال یا غیرفعال بودن فراخوانی مطلع میکند و نسبت ابعاد را تنظیم میکند.
تفاوتهای کلیدی:
- نیازی به تمایز قائل شدن بین ورود خودکار و ورود قدیمی در سمت برنامه نیست.
- رابطهای فراخوانی یکپارچه.
- سازنده جدید
PictureInPictureParamsبرای سازگاری با نسخههای قبلی. - آیکونهای عملیاتی استاندارد برای تماس ویدیویی.
پخش ویدئو
کتابخانه Jetpack نمایندگان پخشکننده را ارائه میدهد که میتوانید آنها را برای مدیریت فعال یا غیرفعال کردن PiP ادغام کنید و راهنمای مستطیل منبع را به طور دقیق تنظیم کنید. همچنین میتوانید مجموعهای از اشیاء از پیش تعریف شده RemoteAction را انتخاب کنید، مشابه مواردی که در سناریوهای تماس ویدیویی استفاده میشوند.
ویژگیهای کلیدی:
- سازگاری را مدیریت میکند، نیازی به بررسی نسخه سیستم عامل نیست.
- هماهنگسازی وضعیت پخش و کنترل ورود خودکار.
- ردیابی هندسه پیوسته با استفاده از
SourceRectHint