แอปสื่อที่โต้ตอบด้วยเสียงกับ Google Assistant ในโทรศัพท์ Android, รถยนต์, ทีวี และหูฟังทำงานด้วย API เซสชันสื่อของ Android และใช้การดำเนินการกับสื่อ วงจรการดำเนินการกับสื่ออาจทำความเข้าใจได้ยาก แม้แต่คำขอเล่นเพลงจาก Search ง่ายๆ ก็มีขั้นตอนกลางหลายขั้นตอนที่อาจเกิดข้อผิดพลาดได้ ดังที่แสดงในไทม์ไลน์แบบง่ายต่อไปนี้
แอป Media Controller Test (MCT) ช่วยให้คุณทดสอบความซับซ้อนของการเล่นสื่อใน Android และช่วยยืนยันการใช้งานเซสชันสื่อได้
แอป Media Controller Test มี 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 และคุณจะเห็นข้อความ "ไม่พบแอปสื่อ ต้องมีสิทธิ์ Notification Listener เพื่อสแกนหาเซสชันสื่อที่ใช้งานอยู่" คลิกการตั้งค่าเพื่อไปที่หน้าจอสิทธิ์และเปิดใช้สิทธิ์สำหรับ MCT
- การติดตั้งใช้งาน MediaBrowserService - รายการนี้แสดงแอปที่ติดตั้งใช้งานบริการเบราว์เซอร์สื่อ หากคุณติดตั้งใช้งานบริการเบราว์เซอร์สื่อ แอปของคุณจะปรากฏในรายการนี้ แต่คุณจะใช้ MCT ได้ก็ต่อเมื่อกำหนดค่าแอปให้ยอมรับการเชื่อมต่อทั้งหมดหรือเพิ่ม MCT ลงในรายการที่อนุญาตเท่านั้น ดูข้อมูลเพิ่มเติมได้ที่การควบคุมการเชื่อมต่อไคลเอ็นต์ด้วย onGetRoot()
การทดสอบแอปโทรศัพท์ด้วยตนเอง
หากคุณอนุญาตให้ MCT เชื่อมต่อกับบริการเบราว์เซอร์สื่อของแอป แอปจะปรากฏในรายการการติดตั้งใช้งานรายการบริการเบราว์เซอร์สื่อ ค้นหาแอปดังกล่าวในส่วนนั้น แล้วคลิกควบคุมเพื่อเริ่มแอปในเบื้องหลัง
ไม่เช่นนั้น คุณต้องเริ่มแอปด้วยตนเองในเบื้องหลังก่อน แล้วคลิกควบคุมเมื่อแอปปรากฏในรายการเซสชันสื่อที่ใช้งานอยู่
การทดสอบการเตรียมตัวและการเล่น
เมื่อ MCT เริ่มควบคุมแอปของคุณ ระบบจะแสดงข้อมูลเมตาของเซสชันปัจจุบันของแอป ซึ่งก็คือสื่อที่เลือกไว้ในปัจจุบันและการดำเนินการที่เซสชันเตรียมพร้อมที่จะจัดการ
ที่ด้านบนของหน้าการควบคุม MCT จะมีเมนูแบบเลื่อนลงซึ่งคุณสามารถเลือกค้นหา, URI, รหัสสื่อ หรือไม่มี พร้อมกับช่องข้อความเพื่อระบุข้อมูลอินพุตที่เชื่อมโยงกับการค้นหา, URI หรือรหัสสื่อ หากคุณเลือกตัวเลือกใดตัวเลือกหนึ่งดังกล่าว
ปุ่มเตรียมและเล่นที่อยู่ใต้ช่องข้อความจะทำการเรียกที่เหมาะสม (onPrepare(), onPrepareFromSearch(), onPrepareFromUri(), onPrepareFromMediaId(), onPlay(), onPlayFromSearch(), onPlayFromUri(), onPlayFromMediaId()) โดยขึ้นอยู่กับการดำเนินการที่คุณเลือก
การทดสอบโฟกัสเสียง
แอปสื่อที่ทำงานได้ดีควรจัดการโฟกัสเสียงได้ คุณทดสอบโฟกัสเสียงได้โดยเรียกใช้แอปเสียงอื่นควบคู่ไปกับแอปของคุณ หน้าการควบคุม MCT มีปุ่มที่ขอและปล่อยโฟกัสเสียง
หากต้องการทดสอบโฟกัสเสียง ให้ทำตามขั้นตอนต่อไปนี้
- ใช้เมนูแบบเลื่อนลงจุดโฟกัสของเสียงเพื่อเลือกคำแนะนำระยะเวลา 1 ใน 3 รายการ ได้แก่
AUDIOFOCUS_GAIN,AUDIOFOCUS_GAIN_TRANSIENTหรือAUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK - กดปุ่มเพื่อขอโฟกัส
- กดปุ่มอีกครั้งเพื่อยกเลิกการโฟกัส
กำลังทดสอบการควบคุมการรับส่งข้อมูล
ปัดไปทางซ้ายเพื่อแสดงมุมมอง UI ของ MCT มุมมองนี้มีปุ่มควบคุมการเล่นของตัวควบคุมสื่อมาตรฐาน และแสดงรูปภาพและข้อมูลรายการของเซสชัน ปุ่มควบคุมที่ปิดใช้อยู่จะมีวงกลมสีส้มล้อมรอบ ส่วนรายการอื่นๆ ทั้งหมดจะทำงานอยู่
ทดสอบเพลเยอร์โดยใช้ปุ่มควบคุมการเล่น สถานะของปุ่มควบคุมควรเปลี่ยนไปตามที่คาดไว้ ตัวอย่างเช่น เมื่อคุณกดปุ่ม PLAY ปุ่มดังกล่าวควรปิดใช้ และปุ่ม PAUSE และ STOP ควรเปิดใช้
ปัดไปทางซ้ายอีกครั้งเพื่อดูมุมมองที่แสดงการดำเนินการที่ไม่บังคับ การดำเนินการแต่ละรายการ จะมีตัวควบคุมที่แสดงว่ามีการใช้งานอยู่หรือไม่ หากปุ่มทำงานอยู่ คุณจะดำเนินการได้โดยคลิกที่ปุ่มนั้น
หากเชื่อมต่อจากรายการแอปที่มีบริการเบราว์เซอร์สื่อ คุณสามารถปัดไปทางซ้ายอีก 2 ครั้งเพื่อดูมุมมองที่ให้คุณเลื่อนขึ้นและลงตามลำดับชั้นเนื้อหาของแอป หรือค้นหาโครงสร้างเนื้อหา
การทดสอบแอปวิดีโอด้วยตนเอง
ใช้โหมดแยกหน้าจอเพื่อทดสอบตัวควบคุมแอปวิดีโอ ก่อนอื่น ให้เปิดแอปวิดีโอในหน้าต่างเดียว จากนั้นเปิด MCT ในโหมดแยกหน้าจอ
กำลังทำการทดสอบการยืนยัน
เฟรมเวิร์กการทดสอบการยืนยันมีการทดสอบแบบคลิกเดียวที่คุณเรียกใช้ได้เพื่อให้มั่นใจว่าแอปสื่อตอบสนองต่อคำขอเล่นอย่างถูกต้อง
การทดสอบแอปโทรศัพท์
หากต้องการเข้าถึงการทดสอบการยืนยัน ให้คลิกปุ่มทดสอบข้างแอปสื่อ
สถานะ MCT
มุมมองถัดไปจะแสดงข้อมูลโดยละเอียดเกี่ยวกับ MediaController ของ MCT เช่น PlaybackState ข้อมูลเมตา และคิว มีปุ่ม 2 ปุ่มที่ด้านขวาบนของแถบเครื่องมือ ปุ่มทางด้านซ้ายจะสลับระหว่างบันทึกที่แยกวิเคราะห์ได้และบันทึกที่จัดรูปแบบแล้ว ปุ่มทางด้านขวาจะรีเฟรชมุมมองเพื่อแสดงข้อมูลล่าสุด
การเลือกการทดสอบ
เมื่อปัดไปทางซ้าย คุณจะไปที่มุมมองการทดสอบการยืนยัน ซึ่งคุณจะเห็นรายการการทดสอบที่พร้อมใช้งานแบบเลื่อนได้ หากการทดสอบใช้การค้นหา เช่น การทดสอบการเล่นจากการค้นหาที่แสดงในรูปที่ 7 จะมีช่องข้อความให้ป้อนสตริงการค้นหา
MCT มีการทดสอบสำหรับการดำเนินการกับสื่อต่อไปนี้ และจะมีการเพิ่มการทดสอบอื่นๆ ลงในโปรเจ็กต์อย่างต่อเนื่อง
- เล่น
- เล่นจาก Search
- เล่นจากรหัสสื่อ
- เล่นจาก 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
การสร้างการทดสอบ
คุณสามารถส่ง Pull Request พร้อมการทดสอบเพิ่มเติมที่คุณคิดว่ามีประโยชน์ได้ หากต้องการดูวิธีสร้างการทดสอบใหม่ โปรดไปที่ MCT GitHub Wiki และดูวิธีการทดสอบการยืนยัน
ดูข้อมูลเพิ่มเติมได้ที่วิธีการมีส่วนร่วม
แหล่งข้อมูลเพิ่มเติม
MCT มีไว้เพื่อใช้ร่วมกับแอปที่ใช้ Media API ดูตัวอย่างแอปดังกล่าวได้ที่ Universal Android Music Player
เรายินดีรับการแก้ไขข้อบกพร่องและการปรับปรุงเสมอ โปรดดูวิธีการมีส่วนร่วม