ใช้ไลบรารีการแสดงภาพซ้อนภาพของ Jetpack

ไลบรารี Jetpack สำหรับภาพซ้อนภาพ (PIP) มีโซลูชันที่คล่องตัวและมีประสิทธิภาพ สำหรับนักพัฒนาแอป Android ในการใช้ฟังก์ชัน PIP โดยเฉพาะ สำหรับการเล่นสื่อ แอปการสื่อสารผ่านวิดีโอ และแอปการนำทาง ไลบรารีนี้มี API แบบรวม ซึ่งช่วยขจัดโค้ดสำเร็จรูป ข้อบกพร่องทั่วไปในแอป และปรับปรุงคุณภาพโดยรวมของประสบการณ์การใช้งาน PiP

ไลบรารี PiP Jetpack ช่วยให้ API ของ PiP ที่มีอยู่ทำงานได้ง่ายขึ้นด้วยการแก้ไขความท้าทายและความไม่สอดคล้องกันที่สำคัญหลายประการในระบบนิเวศของ Android ดังนี้

  • การกระจายตัวของระบบปฏิบัติการ: ไลบรารีจะจัดการความแตกต่างในการเรียกใช้ PIP API ใน Android เวอร์ชันต่างๆ โดยอัตโนมัติ เช่น การใช้ enterPictureInPictureMode ก่อน Android 12 และ isAutoEnterEnabled หลังจากนั้น เพื่อให้นักพัฒนาแอปไม่ต้องจัดการความแตกต่างของเวอร์ชัน
  • พารามิเตอร์ PIP ไม่ถูกต้อง: มีโซลูชันแบบครบวงจรสำหรับการตั้งค่าพารามิเตอร์ PIP อย่างถูกต้อง เช่น setSourceRectHint เพื่อสร้างภาพเคลื่อนไหวที่ราบรื่นและมีคุณภาพสูงในระหว่างการเล่นสื่อ
  • การเรียกกลับสถานะ PiP แบบรวม: รวม onPictureInPictureModeChanged และ onPictureInPictureUiStateChanged ไว้ใน อินเทอร์เฟซการเรียกกลับแบบรวมรายการเดียว (PictureInPictureDelegate.OnPictureInPictureEventListener) เพื่อให้การจัดการสถานะและ UI ง่ายขึ้น
  • การลดโค้ดสำเร็จรูป: ไลบรารีจะลดปริมาณโค้ดสำเร็จรูปที่ซ้ำกัน โดยการเสนอชุด RemoteActions ที่กำหนดไว้ล่วงหน้าสำหรับการใช้งานทั่วไป เช่น ตัวควบคุมการเล่นและการดำเนินการในการวิดีโอคอล
  • การเตรียมพร้อมสำหรับอนาคต: ฟีเจอร์ PiP เพิ่มเติมจะให้บริการผ่านไลบรารี Jetpack ซึ่งช่วยให้ผู้ใช้เข้าถึงฟังก์ชันการทำงานเพิ่มเติมได้โดยใช้ความพยายามเพียงเล็กน้อยหรือไม่มีเลย

ใช้ Jetpack

หากต้องการใช้ไลบรารี Jetpack ให้แทนที่การติดตั้งใช้งาน PIP ที่กำหนดเองที่มีอยู่ด้วย API ของไลบรารี Jetpack ความซับซ้อนและต้นทุนในการ นำไปใช้จะแตกต่างกันไปตามการติดตั้งใช้งานปัจจุบันของแอป

ส่วนต่อไปนี้จะอธิบายกรณีการใช้งานทั่วไปบางส่วนของ PIP และ ขั้นตอนการติดตั้งใช้งานที่จำเป็น

แอปจะแจ้งสถานะการนำทางที่ใช้งานอยู่หรือไม่ใช้งานให้ไลบรารีทราบและ ตั้งค่าสัดส่วนภาพ ส่วนที่เหลือไลบรารี Jetpack จะจัดการให้เอง

ความแตกต่างที่สำคัญ

  1. ไม่จำเป็นต้องแยกความแตกต่างระหว่างการป้อนอัตโนมัติกับการป้อนแบบเดิมในฝั่งแอป
  2. อินเทอร์เฟซการเรียกกลับที่รวมไว้
  3. PictureInPictureParams ตัวสร้างใหม่เพื่อให้เข้ากันได้แบบย้อนหลัง

วิดีโอคอล

แอปจะแจ้งสถานะการโทรว่าใช้งานอยู่หรือไม่ให้ไลบรารีทราบ และตั้งค่า สัดส่วนภาพ

ความแตกต่างที่สำคัญ

  1. ไม่จำเป็นต้องแยกความแตกต่างระหว่างการป้อนอัตโนมัติกับการป้อนแบบเดิมในฝั่งแอป
  2. อินเทอร์เฟซการเรียกกลับที่รวมไว้
  3. PictureInPictureParams ตัวสร้างใหม่เพื่อให้เข้ากันได้แบบย้อนหลัง
  4. ไอคอนการดำเนินการที่เป็นมาตรฐานสำหรับวิดีโอคอล

การเล่นวิดีโอ

ไลบรารี Jetpack มีตัวแทนผู้เล่นที่คุณสามารถผสานรวมเพื่อจัดการ การเปิดใช้หรือปิดใช้ PIP และตั้งค่าคำแนะนำสี่เหลี่ยมผืนผ้าของแหล่งที่มาได้อย่างถูกต้อง นอกจากนี้ คุณยังเลือกใช้ชุดRemoteActionออบเจ็กต์ที่กำหนดไว้ล่วงหน้าได้ด้วย ซึ่งคล้ายกับ ออบเจ็กต์ที่ใช้ในสถานการณ์การโทรผ่านวิดีโอ

ฟีเจอร์หลัก

  1. จัดการความเข้ากันได้แบบย้อนหลัง ไม่จำเป็นต้องตรวจสอบเวอร์ชันระบบปฏิบัติการ
  2. การซิงค์สถานะการเล่นและการควบคุมการป้อนอัตโนมัติ
  3. การติดตามเรขาคณิตอย่างต่อเนื่องโดยใช้ SourceRectHint