แอปสื่อที่โต้ตอบด้วยเสียงกับ Google Assistant ในโทรศัพท์ Android, รถยนต์, ทีวี และหูฟังจะทำงานด้วย Android Media Session API และใช้การดําเนินการกับสื่อ วงจรการใช้สื่ออาจติดตามได้ยาก แม้แต่การเล่นจากคำขอการค้นหาง่ายๆ ก็มีขั้นตอนกลางๆ หลายขั้นตอนที่อาจเกิดข้อผิดพลาดได้ ดังที่แสดงในไทม์ไลน์แบบง่ายต่อไปนี้
แอปทดสอบตัวควบคุมสื่อ (MCT) ช่วยให้คุณทดสอบความซับซ้อนของการเล่นสื่อใน Android และช่วยยืนยันการติดตั้งใช้งานเซสชันสื่อ
แอปทดสอบตัวควบคุมสื่อมี 2 เวอร์ชัน ได้แก่
- แอปไคลเอ็นต์ติดตั้งใช้งานบน
MediaControllerCompat
รุ่นเดิม ซึ่งจะช่วยให้ทดสอบแอปเซสชันสื่อที่สร้างขึ้นบนMediaSessionCompat
เดิมหรือ Media3MediaSession
ได้เมื่อแอปภายนอกเข้าถึงผ่านMediaControllerCompat
เดิม ดูซอร์สโค้ดของเวอร์ชันเดิมใน GitHub - แอปไคลเอ็นต์ติดตั้งใช้งานบน Media3
MediaController
เวอร์ชันล่าสุด ซึ่งจะช่วยให้ทดสอบแอปเซสชันสื่อที่สร้างขึ้นบนMediaSessionCompat
เดิมหรือ Media3MediaSession
ได้เมื่อแอปภายนอกเข้าถึงผ่าน Media3MediaController
ดูซอร์สโค้ดของเวอร์ชัน Media3 ได้ใน GitHub
MCT จะแสดงข้อมูลเกี่ยวกับMediaController
ของแอป เช่น
PlaybackState
และข้อมูลเมตา รวมถึงสามารถใช้เพื่อทดสอบการควบคุมสื่อระหว่างแอป
MCT ยังมีเฟรมเวิร์กการทดสอบการยืนยันที่ช่วยให้คุณทำการทดสอบ QA แบบอัตโนมัติได้
หากต้องการใช้ MCT แอปของคุณต้องมีบริการเบราว์เซอร์สื่อ และคุณต้องอนุญาตให้ MCT เชื่อมต่อกับบริการดังกล่าว ดูข้อมูลเพิ่มเติมที่หัวข้อการสร้างบริการเบราว์เซอร์สื่อ
การเริ่ม MCT

เมื่อเปิด MCT คุณจะเห็นรายการ 2 รายการ ได้แก่
- MediaSession ที่ใช้งานอยู่ - รายการนี้จะว่างเปล่าเมื่อคุณเปิด MCT เป็นครั้งแรก และคุณจะเห็นข้อความว่า "ไม่พบแอปสื่อ การแจ้งเตือน ต้องมีสิทธิ์ของผู้ฟังเพื่อสแกนหาเซสชันสื่อที่ใช้งานอยู่" คลิกการตั้งค่าเพื่อไปที่หน้าจอสิทธิ์และเปิดใช้สิทธิ์สําหรับ MCT
- การใช้งาน MediaBrowserService - รายการนี้แสดงแอปที่ใช้บริการ Media Browser หากคุณใช้บริการเบราว์เซอร์สื่อ แอปของคุณจะปรากฏในรายการนี้ แต่คุณจะใช้ MCT ได้ก็ต่อเมื่อกําหนดค่าแอปให้ยอมรับการเชื่อมต่อทั้งหมดหรือเพิ่ม MCT ลงในรายการที่อนุญาต ดูข้อมูลเพิ่มเติมที่การควบคุมการเชื่อมต่อไคลเอ็นต์ด้วย onGetRoot()
การทดสอบแอปโทรศัพท์ด้วยตนเอง
หากคุณอนุญาตให้ MCT เชื่อมต่อกับบริการเรียกดูสื่อของแอป แอปของคุณจะปรากฏในรายการการใช้งานบริการเรียกดูสื่อ ค้นหาแอปดังกล่าวแล้วคลิกควบคุมเพื่อเริ่มแอปในเบื้องหลัง
มิเช่นนั้น คุณต้องเริ่มแอปด้วยตนเองในเบื้องหลังก่อน จากนั้นคลิกควบคุมเมื่อแอปปรากฏในรายการเซสชันสื่อที่ใช้งานอยู่
การทดสอบการเตรียมตัวและเล่น
เมื่อ MCT เริ่มควบคุมแอป ระบบจะแสดงข้อมูลเมตาของเซสชันปัจจุบันของแอป ซึ่งได้แก่ สื่อที่เลือกอยู่ในปัจจุบันและการดําเนินการที่เซสชันพร้อมที่จะจัดการ

ด้านบนของหน้าการควบคุม MCT มีเมนูแบบเลื่อนลงที่คุณสามารถเลือกค้นหา URI รหัสสื่อ หรือไม่มี พร้อมด้วยช่องข้อความเพื่อระบุข้อมูลอินพุตที่เชื่อมโยงกับ Search, URI หรือรหัสสื่อ หากคุณเลือกตัวเลือกใดตัวเลือกหนึ่ง
ปุ่มเตรียมและเล่นใต้ช่องข้อความจะเรียกใช้การดำเนินการที่เหมาะสม (onPrepare()
, onPrepareFromSearch()
, onPrepareFromUri()
,
onPrepareFromMediaId()
, onPlay()
, onPlayFromSearch()
, onPlayFromUri()
,
onPlayFromMediaId()
) โดยขึ้นอยู่กับการดำเนินการที่คุณเลือก
การทดสอบโฟกัสเสียง
แอปสื่อที่ทำงานได้อย่างถูกต้องควรจัดการโฟกัสเสียงได้ คุณสามารถทดสอบโฟกัสเสียงได้โดยเปิดแอปเสียงอื่นควบคู่ไปกับแอปของคุณ หน้าการควบคุม MCT จะมีปุ่มที่ขอและยกเลิกโฟกัสเสียง
หากต้องการทดสอบโฟกัสเสียง ให้ทำตามขั้นตอนต่อไปนี้
- ใช้เมนูแบบเลื่อนลงโฟกัสเสียงเพื่อเลือกคำแนะนำระยะเวลา 1 ใน 3 แบบ
AUDIOFOCUS_GAIN
,AUDIOFOCUS_GAIN_TRANSIENT
หรือAUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK
- กดปุ่มเพื่อขอโฟกัส
- กดปุ่มอีกครั้งเพื่อยกเลิกโฟกัส
การทดสอบตัวควบคุมการนำส่ง

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

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

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

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

พื้นที่ผลลัพธ์ที่ด้านล่างของมุมมองจะว่างเปล่าในตอนแรก ซึ่งจะแสดงผลลัพธ์เมื่อคุณทำการทดสอบ เช่น หากต้องการเรียกใช้การทดสอบการเล่นจากการค้นหา ให้ป้อนข้อความค้นหาในช่องข้อความ แล้วคลิกเรียกใช้การทดสอบ ภาพหน้าจอต่อไปนี้แสดงผลการทดสอบที่ประสบความสําเร็จ
การทดสอบแอป Android TV
เมื่อเปิด MCT บน Android TV คุณจะเห็นรายการแอปสื่อที่ติดตั้งไว้ โปรดทราบว่าแอปจะปรากฏในรายการนี้ก็ต่อเมื่อใช้บริการเบราว์เซอร์สื่อ
การเลือกแอปจะนำคุณไปยังหน้าจอการทดสอบ ซึ่งจะแสดงรายการการทดสอบการยืนยันทางด้านขวา
เมื่อทำการทดสอบ ด้านซ้ายของหน้าจอจะแสดงข้อมูลเกี่ยวกับ MediaController ที่เลือก ดูรายละเอียดเพิ่มเติมได้ในบันทึก MCT ใน Logcat
การทดสอบที่ต้องใช้ข้อความค้นหาจะมีเครื่องหมายไอคอนแป้นพิมพ์ การคลิกการทดสอบรายการใดรายการหนึ่งจะเป็นการเปิดช่องป้อนข้อมูลสําหรับคําค้นหา คลิก Enter เพื่อเรียกใช้การทดสอบ
คุณยังใช้คำสั่ง adb
เพื่อป้อนข้อความได้ง่ายขึ้นได้ด้วย โดยทำดังนี้
adb shell input text your-query
คุณสามารถใช้ "%s" เพื่อเพิ่มเว้นวรรคระหว่างคำได้ ตัวอย่างเช่น คำสั่งต่อไปนี้จะเพิ่มข้อความ "hello world" ลงในช่องป้อนข้อมูล
adb shell input text hello%sworld
การสร้างการทดสอบ
คุณสามารถส่งคำขอดึงข้อมูลพร้อมการทดสอบเพิ่มเติมที่คุณคิดว่ามีประโยชน์ หากต้องการดูวิธีสร้างการทดสอบใหม่ โปรดไปที่ MCT GitHub Wiki และดูวิธีการทดสอบการยืนยัน
โปรดอ่านวิธีการมีส่วนร่วม
แหล่งข้อมูลเพิ่มเติม
MCT มีไว้เพื่อใช้ร่วมกับแอปที่ใช้ Media API ดูตัวอย่างแอปดังกล่าวได้ใน Universal Android Music Player
เรายินดีรับการแก้ไขข้อบกพร่องและการปรับปรุงเสมอ โปรดดูวิธีการมีส่วนร่วม