تصویر در تصویر

تصویرسازی قهرمان از نماد PiP و لوگوی Play

تصویر در تصویر (PiP) نوعی حالت چند پنجره‌ای است که برای فعالیت‌هایی که ویدیوی تمام صفحه پخش می‌کنند، در نظر گرفته شده است. این حالت به کاربر اجازه می‌دهد هنگام پیمایش بین برنامه‌ها یا مرور محتوا در صفحه اصلی، ویدیویی را در یک پنجره کوچک پین شده در گوشه صفحه تماشا کند.

شکل ۱: کاربران شما می‌توانند حتی زمانی که در برنامه شما نیستند، به تجربه ویدیویی خود ادامه دهند

غذاهای بیرون‌بر

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

پشتیبانی از تصویر در تصویر را به برنامه خود اضافه کنید

به طور پیش‌فرض، سیستم به طور خودکار از PiP برای برنامه‌ها پشتیبانی نمی‌کند و باید برای پشتیبانی از این ویژگی اعلام شود.

پنجره PiP در بالاترین لایه صفحه نمایش، در گوشه‌ای که توسط سیستم انتخاب شده است، ظاهر می‌شود.

کنترل‌ها

به طور پیش‌فرض، اندروید کنترل‌های PiP را برای بستن پنجره، باز کردن آن به حالت تمام صفحه، تنظیمات و پخش رسانه ارائه می‌دهد. برنامه شما می‌تواند اقدامات سفارشی و آیکون‌های مناسب را اضافه کند تا کاربران بتوانند با محتوای PiP تعامل داشته باشند.

کاربر می‌تواند این کنترل‌ها را از منوی پنجره PiP با ضربه زدن روی پنجره در دستگاه تلفن همراه یا انتخاب منو از کنترل از راه دور تلویزیون نمایش دهد. اگر یک برنامه دارای یک جلسه رسانه‌ای فعال باشد، کنترل‌های پخش، مکث، بعدی و قبلی نیز نمایش داده می‌شوند. در مورد نحوه اضافه کردن این کنترل‌ها بخوانید.

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

رابط کاربری که کنترل‌های پیش‌فرض تصویر در تصویر را نشان می‌دهد

کنترل‌های پیش‌فرض PiP

نمونه‌ای از کنترل‌های PiP سفارشی

نمونه‌ای از کنترل‌های PiP سفارشی.

کاربرد

به کاربران اجازه دهید نه تنها در برنامه شما، بلکه در سایر دستگاه‌های خود نیز به تماشای ویدیوی خود ادامه دهند. برنامه شما کنترل می‌کند که چه زمانی فعالیت فعلی وارد حالت PiP می‌شود - این می‌تواند یک تعامل مانند ترک نمای فعلی یا کشیدن صفحه به بالا برای رفتن به خانه باشد.

در اینجا چند نمونه از اقدامات ممکن آورده شده است:

  • یک فعالیت می‌تواند زمانی وارد حالت PiP شود که کاربر دکمه خانه را لمس کند یا صفحه را به سمت بالا بکشد. به این ترتیب است که گوگل مپس در حالی که کاربر همزمان فعالیت دیگری را اجرا می‌کند، به نمایش مسیرها ادامه می‌دهد.

    شکل ۴: PiP برای ادامه تجربه مسیریابی استفاده می‌شود
  • برنامه شما می‌تواند وقتی کاربر برای مرور محتوای دیگر از ویدیو به عقب برمی‌گردد، ویدیو را به حالت PiP منتقل کند.

  • برنامه شما می‌تواند در حالی که کاربر پایان یک قسمت از محتوا را تماشا می‌کند، ویدیو را به حالت PiP تغییر دهد. صفحه اصلی اطلاعات تبلیغاتی یا خلاصه‌ای درباره قسمت بعدی سریال را نمایش می‌دهد.

  • برنامه شما می‌تواند راهی برای کاربران فراهم کند تا هنگام تماشای ویدیو، محتوای اضافی را در صف انتظار قرار دهند. ویدیو در حالت PiP همچنان پخش می‌شود در حالی که صفحه اصلی یک فعالیت انتخاب محتوا را نشان می‌دهد.

از الگوی تعاملی استفاده کنید که تجربه مشاهده را بدون ایجاد اختلال تکمیل کند. به عنوان مثال، اگر ویدیویی در پایان یک قسمت از محتوا باشد، وارد کردن PiP هنگام خروج از صفحه اصلی، نیاز به اقدام اضافی کاربر برای بازگشت و توقف پخش یا پیمایش کنترل‌های کوچک دارد.

در برنامه شما، ممکن است کاربر هنگام جستجوی محتوا در صفحه اصلی، در حالی که یک فعالیت پخش ویدیو در حالت PiP است، یک ویدیوی جدید را انتخاب کند. ویدیوی جدید را در فعالیت پخش موجود در حالت تمام صفحه پخش کنید، به جای اینکه یک فعالیت جدید را اجرا کنید که ممکن است کاربر را گیج کند.

الگوهای تعامل

کاربران می‌توانند پنجره PiP را به مکان دیگری بکشند.

برای نمایش یک دکمه‌ی تمام صفحه، یک دکمه‌ی بستن، یک دکمه‌ی تنظیمات و اقدامات سفارشی ارائه شده توسط برنامه‌ی شما (مثلاً کنترل‌های پخش)، روی پنجره یک بار ضربه بزنید .

شکل ۵: کنترل‌های پیش‌فرض PiP

برای تغییر اندازه تصویر در تصویر (PiP) فعلی و حداکثر یا حداقل اندازه تصویر در تصویر (PiP)، روی پنجره دو بار ضربه بزنید - برای مثال، دو بار ضربه زدن روی یک پنجره بزرگ شده، آن را کوچک می‌کند و عکس این قضیه نیز صادق است.

شکل ۶: تغییر اندازه تصویر در تصویر (PiP) بین حداقل و حداکثر با دوبار ضربه زدن

با کشیدن پنجره به لبه چپ یا راست، آن را مخفی کنید . برای برداشتن پنجره از حالت مخفی، یا روی قسمت قابل مشاهده پنجره مخفی شده ضربه بزنید یا آن را به بیرون بکشید.

شکل 7: PiP ذخیره شده

با استفاده از قابلیت زوم با دو انگشت، اندازه پنجره PiP را تغییر دهید .

برای حذف پنجره، PiP را به پایین بکشید .

شکل ۸: کشیدن انگشت به پایین

انتقال‌ها

برای اینکه تجربه کاربری هنگام ورود و خروج از حالت PiP بهبود یابد، می‌توانید گذارهای ورود و خروج را سفارشی کنید.

ورود روان به انیمیشن PiP

فعال کردن حالت PiP توسط کاربر باعث می‌شود فعالیت فعلی از حالت تمام صفحه به یک پنجره کوچک تبدیل شود که بدون همپوشانی هیچ رابط کاربری، همچنان محتوا را نشان می‌دهد.

اندروید ۱۲ بهبودهای ظاهری در انتقال بین پنجره‌های تمام‌صفحه و تصویر در تصویر (PiP) ارائه داد. پس از پیاده‌سازی، این به‌روزرسانی‌ها به‌طور خودکار در تبلت‌ها و دستگاه‌های تاشو مقیاس‌پذیر می‌شوند.

بدون این به‌روزرسانی‌ها، انتقال‌ها کاربردی هستند اما کیفیت کمتری دارند. برای مثال، ممکن است پنجره PiP در حین انتقال موقتاً ناپدید شود.

از اندروید ۱۲ به بعد، فلگ PictureInPictureParams.Builder.setAutoEnterEnabled(true) انتقال‌های حرکتی روان‌تری (مانند کشیدن انگشت به بالا و رفتن به صفحه اصلی) را فراهم می‌کند. ما این را برای برنامه‌های ENTERTAINMENT ، COMMUNICATION یا VIDEO_PLAYER توصیه می‌کنیم.

بدون این پرچم، انتقال‌های حرکتی، پنجره را به اندازه آیکون برنامه کوچک می‌کنند و سپس دوباره به عنوان پنجره PiP ظاهر می‌شوند (همانطور که در ویدیوی ۱ نشان داده شده است).

تجربه انتقال نه چندان روان زمانی که PiP به درستی setAutoEnterEnabled را پیاده‌سازی نکرده باشد

تجربه انتقال روان‌تر با اضافه شدن setAutoEnterEnabled به برنامه.

تصاویر ویدیویی روان

وقتی PiP را در اندروید ۸.۰ معرفی کردیم، sourceRectHint ناحیه‌ای از فعالیت را که پس از انتقال به PiP قابل مشاهده است، نشان می‌داد - برای مثال، محدوده‌های نمایش ویدیو در یک پخش‌کننده ویدیو. از اندروید ۱۲ به بعد، سیستم عامل از sourceRectHint برای پیاده‌سازی یک انیمیشن بسیار روان‌تر، هم هنگام ورود به حالت PiP و هم هنگام خروج از آن، استفاده می‌کند.

اگر برنامه شما sourceRectHint مناسبی ارائه نمی‌دهد، انتقال تصویر در تصویر (PiP) هنوز کاربردی است اما انیمیشن‌ها کمتر صیقل داده شده‌اند. برای مثال، ویدیوی ۳ نمونه‌ای کمتر صیقل داده شده از انتقال از حالت تمام صفحه به حالت PiP را نشان می‌دهد: پس از اینکه پنجره تمام صفحه به پنجره PiP کوچک می‌شود، قبل از اینکه دوباره ویدیو ظاهر شود، با یک لایه سیاه پوشانده می‌شود.

ویدیوی ۳: تجربه انتقال نه چندان روان وقتی که sourceRectHint در PiP به درستی پیاده‌سازی نشده باشد

برای دیدن مثالی از نحوه نمایش انیمیشن PiP در صورت پیاده‌سازی صحیح sourceRectHint ، به ویدیوی ۲ در بخش قبل مراجعه کنید.

برای فعال کردن یک تجربه انتقال روان، به نمونه Android Kotlin PictureInPicture به عنوان مرجع مراجعه کنید.

برای اطلاعات بیشتر در مورد پیاده‌سازی PiP، به مستندات توسعه‌دهنده‌ی Picture-in-picture مراجعه کنید.