การใช้แอปทดสอบตัวควบคุมสื่อ

แอปสื่อที่โต้ตอบด้วยเสียงกับ Google Assistant ในโทรศัพท์ Android, รถยนต์, ทีวี และหูฟังทำงานด้วย API เซสชันสื่อของ Android และใช้การดำเนินการกับสื่อ วงจรการดำเนินการกับสื่ออาจทำความเข้าใจได้ยาก แม้แต่คำขอเล่นเพลงจาก Search ง่ายๆ ก็มีขั้นตอนกลางหลายขั้นตอนที่อาจเกิดข้อผิดพลาดได้ ดังที่แสดงในไทม์ไลน์แบบง่ายต่อไปนี้

วงจรการดำเนินการของสื่อ

รูปที่ 1 วงจรการดำเนินการกับสื่อ

แอป Media Controller Test (MCT) ช่วยให้คุณทดสอบความซับซ้อนของการเล่นสื่อใน Android และช่วยยืนยันการใช้งานเซสชันสื่อได้

แอป Media Controller Test มี 2 เวอร์ชัน ดังนี้

  • แอปไคลเอ็นต์จะติดตั้งใช้งานที่ด้านบนของ MediaControllerCompat เดิม ซึ่งจะช่วยให้คุณทดสอบแอปเซสชันสื่อที่สร้างขึ้นบน MediaSessionCompat เดิมหรือ Media3 MediaSession เมื่อแอปภายนอกเข้าถึงผ่าน MediaControllerCompat เดิมได้ ดูซอร์สโค้ดของเวอร์ชันเดิมใน GitHub
  • แอปไคลเอ็นต์จะติดตั้งใช้งานที่ด้านบนของ Media3 เวอร์ชันล่าสุด MediaController ซึ่งจะช่วยให้คุณทดสอบแอปเซสชันสื่อที่สร้างขึ้นบน MediaSessionCompat เดิมหรือ Media3 MediaSession เมื่อแอปภายนอกเข้าถึงผ่าน Media3 MediaController ได้ ดูซอร์สโค้ดของ Media3 เวอร์ชันนี้ใน GitHub

MCT จะแสดงข้อมูลเกี่ยวกับ MediaController ของแอป เช่น PlaybackState และข้อมูลเมตา และสามารถใช้เพื่อทดสอบตัวควบคุมสื่อระหว่างแอปได้ นอกจากนี้ MCT ยังมีเฟรมเวิร์กการทดสอบการยืนยันที่ช่วยให้คุณทำการทดสอบ QA โดยอัตโนมัติได้

หากต้องการใช้ MCT แอปของคุณต้องมีบริการเบราว์เซอร์สื่อและคุณต้องอนุญาตให้ MCT เชื่อมต่อกับบริการดังกล่าว ดูข้อมูลเพิ่มเติมได้ที่การสร้างบริการเบราว์เซอร์สื่อ

การเริ่มต้นใช้งาน MCT

หน้าเปิดตัว MCT
รูปที่ 2 หน้า Launch ของ MCT

เมื่อเปิดใช้ MCT คุณจะเห็นรายการ 2 รายการดังนี้

  • MediaSession ที่ใช้งานอยู่ - รายการนี้จะว่างเปล่าในตอนแรกเมื่อคุณเปิด MCT และคุณจะเห็นข้อความ "ไม่พบแอปสื่อ ต้องมีสิทธิ์ Notification Listener เพื่อสแกนหาเซสชันสื่อที่ใช้งานอยู่" คลิกการตั้งค่าเพื่อไปที่หน้าจอสิทธิ์และเปิดใช้สิทธิ์สำหรับ MCT
  • การติดตั้งใช้งาน MediaBrowserService - รายการนี้แสดงแอปที่ติดตั้งใช้งานบริการเบราว์เซอร์สื่อ หากคุณติดตั้งใช้งานบริการเบราว์เซอร์สื่อ แอปของคุณจะปรากฏในรายการนี้ แต่คุณจะใช้ MCT ได้ก็ต่อเมื่อกำหนดค่าแอปให้ยอมรับการเชื่อมต่อทั้งหมดหรือเพิ่ม MCT ลงในรายการที่อนุญาตเท่านั้น ดูข้อมูลเพิ่มเติมได้ที่การควบคุมการเชื่อมต่อไคลเอ็นต์ด้วย onGetRoot()

การทดสอบแอปโทรศัพท์ด้วยตนเอง

หากคุณอนุญาตให้ MCT เชื่อมต่อกับบริการเบราว์เซอร์สื่อของแอป แอปจะปรากฏในรายการการติดตั้งใช้งานรายการบริการเบราว์เซอร์สื่อ ค้นหาแอปดังกล่าวในส่วนนั้น แล้วคลิกควบคุมเพื่อเริ่มแอปในเบื้องหลัง

ไม่เช่นนั้น คุณต้องเริ่มแอปด้วยตนเองในเบื้องหลังก่อน แล้วคลิกควบคุมเมื่อแอปปรากฏในรายการเซสชันสื่อที่ใช้งานอยู่

การทดสอบการเตรียมตัวและการเล่น

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

หน้าควบคุม
รูปที่ 3 หน้าควบคุม

ที่ด้านบนของหน้าการควบคุม MCT จะมีเมนูแบบเลื่อนลงซึ่งคุณสามารถเลือกค้นหา, URI, รหัสสื่อ หรือไม่มี พร้อมกับช่องข้อความเพื่อระบุข้อมูลอินพุตที่เชื่อมโยงกับการค้นหา, URI หรือรหัสสื่อ หากคุณเลือกตัวเลือกใดตัวเลือกหนึ่งดังกล่าว

ปุ่มเตรียมและเล่นที่อยู่ใต้ช่องข้อความจะทำการเรียกที่เหมาะสม (onPrepare(), onPrepareFromSearch(), onPrepareFromUri(), onPrepareFromMediaId(), onPlay(), onPlayFromSearch(), onPlayFromUri(), onPlayFromMediaId()) โดยขึ้นอยู่กับการดำเนินการที่คุณเลือก

การทดสอบโฟกัสเสียง

แอปสื่อที่ทำงานได้ดีควรจัดการโฟกัสเสียงได้ คุณทดสอบโฟกัสเสียงได้โดยเรียกใช้แอปเสียงอื่นควบคู่ไปกับแอปของคุณ หน้าการควบคุม MCT มีปุ่มที่ขอและปล่อยโฟกัสเสียง

หากต้องการทดสอบโฟกัสเสียง ให้ทำตามขั้นตอนต่อไปนี้

  1. ใช้เมนูแบบเลื่อนลงจุดโฟกัสของเสียงเพื่อเลือกคำแนะนำระยะเวลา 1 ใน 3 รายการ ได้แก่ AUDIOFOCUS_GAIN, AUDIOFOCUS_GAIN_TRANSIENT หรือ AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK
  2. กดปุ่มเพื่อขอโฟกัส
  3. กดปุ่มอีกครั้งเพื่อยกเลิกการโฟกัส

กำลังทดสอบการควบคุมการรับส่งข้อมูล

การทดสอบการควบคุมการรับส่งข้อมูล
รูปที่ 4 การทดสอบการควบคุมการรับส่งข้อมูล

ปัดไปทางซ้ายเพื่อแสดงมุมมอง UI ของ MCT มุมมองนี้มีปุ่มควบคุมการเล่นของตัวควบคุมสื่อมาตรฐาน และแสดงรูปภาพและข้อมูลรายการของเซสชัน ปุ่มควบคุมที่ปิดใช้อยู่จะมีวงกลมสีส้มล้อมรอบ ส่วนรายการอื่นๆ ทั้งหมดจะทำงานอยู่

ทดสอบเพลเยอร์โดยใช้ปุ่มควบคุมการเล่น สถานะของปุ่มควบคุมควรเปลี่ยนไปตามที่คาดไว้ ตัวอย่างเช่น เมื่อคุณกดปุ่ม PLAY ปุ่มดังกล่าวควรปิดใช้ และปุ่ม PAUSE และ STOP ควรเปิดใช้

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

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

การทดสอบแอปวิดีโอด้วยตนเอง

ใช้โหมดแยกหน้าจอเพื่อทดสอบตัวควบคุมแอปวิดีโอ ก่อนอื่น ให้เปิดแอปวิดีโอในหน้าต่างเดียว จากนั้นเปิด MCT ในโหมดแยกหน้าจอ

กำลังทำการทดสอบการยืนยัน

เฟรมเวิร์กการทดสอบการยืนยันมีการทดสอบแบบคลิกเดียวที่คุณเรียกใช้ได้เพื่อให้มั่นใจว่าแอปสื่อตอบสนองต่อคำขอเล่นอย่างถูกต้อง

การทดสอบแอปโทรศัพท์

ปุ่มทดสอบ
รูปที่ 5 ปุ่มทดสอบ

หากต้องการเข้าถึงการทดสอบการยืนยัน ให้คลิกปุ่มทดสอบข้างแอปสื่อ

สถานะ MCT

สถานะตัวควบคุมสื่อ
รูปที่ 6 สถานะตัวควบคุมสื่อ

มุมมองถัดไปจะแสดงข้อมูลโดยละเอียดเกี่ยวกับ MediaController ของ MCT เช่น PlaybackState ข้อมูลเมตา และคิว มีปุ่ม 2 ปุ่มที่ด้านขวาบนของแถบเครื่องมือ ปุ่มทางด้านซ้ายจะสลับระหว่างบันทึกที่แยกวิเคราะห์ได้และบันทึกที่จัดรูปแบบแล้ว ปุ่มทางด้านขวาจะรีเฟรชมุมมองเพื่อแสดงข้อมูลล่าสุด

การเลือกการทดสอบ

หน้าการเลือกการทดสอบ
รูปที่ 7 หน้าการเลือกการทดสอบ

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

MCT มีการทดสอบสำหรับการดำเนินการกับสื่อต่อไปนี้ และจะมีการเพิ่มการทดสอบอื่นๆ ลงในโปรเจ็กต์อย่างต่อเนื่อง

  • เล่น
  • เล่นจาก Search
  • เล่นจากรหัสสื่อ
  • เล่นจาก URI
  • หยุดชั่วคราว
  • หยุด
  • ข้ามไปยังรายการถัดไป
  • ข้ามไปยังรายการก่อนหน้า
  • ข้ามไปยังรายการในคิว
  • กรอไปที่

ผลการทดสอบ

ผลการทดสอบที่ประสบความสำเร็จ
รูปที่ 8 ผลการทดสอบที่ประสบความสำเร็จ

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

การทดสอบแอป Android TV

เมื่อเปิด MCT บน Android TV คุณจะเห็นรายการแอปสื่อที่ติดตั้งไว้ โปรดทราบว่าแอปจะปรากฏในรายการนี้ก็ต่อเมื่อใช้บริการเบราว์เซอร์สื่อเท่านั้น

หน้าเปิดตัว MCT บนทีวี

รูปที่ 9 หน้า Launch ของ MCT บนทีวี

การเลือกแอปจะนำคุณไปยังหน้าจอการทดสอบ ซึ่งจะแสดงรายการการทดสอบการยืนยันทางด้านขวา

หน้าการทดสอบการยืนยันบนทีวี

รูปที่ 10 หน้าการทดสอบการยืนยันบนทีวี

เมื่อคุณทำการทดสอบ ด้านซ้ายของหน้าจอจะแสดงข้อมูลเกี่ยวกับ MediaController ที่เลือก ดูรายละเอียดเพิ่มเติมได้ที่บันทึก MCT ใน Logcat

หน้าข้อมูลการทดสอบบนทีวี

รูปที่ 11 หน้าข้อมูลการทดสอบในทีวี

การทดสอบที่ต้องใช้คำค้นหาจะมีไอคอนแป้นพิมพ์กำกับไว้ การคลิกการทดสอบรายการใดรายการหนึ่งเหล่านี้จะเปิดช่องป้อนข้อมูลสําหรับคําค้นหา คลิก Enter เพื่อเรียกใช้การทดสอบ

หากต้องการป้อนข้อความได้ง่ายขึ้น คุณสามารถใช้คำสั่ง adb ต่อไปนี้ได้ด้วย

adb shell input text your-query

คุณสามารถใช้ "%s" เพื่อเพิ่มช่องว่างระหว่างคำได้ ตัวอย่างเช่น คำสั่งต่อไปนี้จะเพิ่มข้อความ "hello world" ลงในช่องป้อนข้อมูล

adb shell input text hello%sworld

การสร้างการทดสอบ

คุณสามารถส่ง Pull Request พร้อมการทดสอบเพิ่มเติมที่คุณคิดว่ามีประโยชน์ได้ หากต้องการดูวิธีสร้างการทดสอบใหม่ โปรดไปที่ MCT GitHub Wiki และดูวิธีการทดสอบการยืนยัน

ดูข้อมูลเพิ่มเติมได้ที่วิธีการมีส่วนร่วม

แหล่งข้อมูลเพิ่มเติม

MCT มีไว้เพื่อใช้ร่วมกับแอปที่ใช้ Media API ดูตัวอย่างแอปดังกล่าวได้ที่ Universal Android Music Player

เรายินดีรับการแก้ไขข้อบกพร่องและการปรับปรุงเสมอ โปรดดูวิธีการมีส่วนร่วม