אפליקציות מדיה שמקיימות אינטראקציה קולית עם Google Assistant בטלפונים, במכוניות, בטלוויזיות ובאוזניות עם Android, מופעלות על ידי ממשקי API של סשנים של מדיה ב-Android ומשתמשות בפעולות מדיה. יכול להיות שיהיה קשה לעקוב אחרי מחזור החיים של פעולת המדיה. אפילו לבקשת הפעלה פשוטה מחיפוש יש הרבה שלבי ביניים שבהם משהו יכול להשתבש, כמו שמוצג בציר הזמן הפשוט:
אפליקציית Media Controller Test (MCT) מאפשרת לבדוק את המורכבות של הפעלת מדיה ב-Android, ועוזרת לאמת את ההטמעה של סשן המדיה.
אפליקציית Media Controller Test זמינה בשתי גרסאות:
- אפליקציית הלקוח מוטמעת מעל
MediaControllerCompatהקודם. כך אפשר לבדוק את האפליקציה של סשן המדיה שמבוססת עלMediaSessionCompatמדור קודם או עלMediaSessionשל Media3, כשאפליקציה חיצונית ניגשת אליה דרךMediaControllerCompatמדור קודם. קוד המקור של הגרסה הקודמת זמין ב-GitHub. - אפליקציית הלקוח מוטמעת מעל הגרסה האחרונה של Media3
MediaController. כך אפשר לבדוק את האפליקציה של סשן המדיה שמבוססת עלMediaSessionCompatמדור קודם או עלMediaSessionשל Media3, כשאפליקציה חיצונית ניגשת אליה דרךMediaControllerשל Media3. קוד המקור של גרסת Media3 זמין ב-GitHub.
ה-MCT מציג מידע על MediaController של האפליקציה, כמו PlaybackState ומטא-נתונים, ואפשר להשתמש בו כדי לבדוק את ממשק השליטה במדיה בין אפליקציות.
ה-MCT כולל גם מסגרת לבדיקת אימות שמאפשרת להפוך את בדיקות ה-QA לאוטומטיות.
כדי להשתמש ב-MCT, באפליקציה שלכם צריך להיות שירות דפדפן מדיה, ואתם צריכים לאפשר ל-MCT להתחבר אליו. מידע נוסף זמין במאמר יצירת שירות דפדפן מדיה.
הפעלת ה-MCT
כשמפעילים את MCT, רואים שתי רשימות:
- Active MediaSessions – הרשימה הזו ריקה בהתחלה כשמפעילים את ה-MCT, ומוצגת ההודעה "No media apps found. כדי לחפש סשנים פעילים של מדיה, נדרשת הרשאה להאזנה להתראות. לוחצים על הגדרות כדי לעבור למסך ההרשאות ולהפעיל את ההרשאה ל-MCT.
- הטמעות של MediaBrowserService – ברשימה הזו מוצגות אפליקציות שהטמיעו שירות של דפדפן מדיה. אם הטמעתם שירות דפדפן מדיה, האפליקציה שלכם תופיע ברשימה הזו, אבל תוכלו להשתמש ב-MCT רק אם הגדרתם את האפליקציה כך שתקבל את כל החיבורים או אם הוספתם את ה-MCT לרשימת ההיתרים. מידע נוסף זמין במאמר Controlling client connections with onGetRoot().
בדיקה ידנית של אפליקציית טלפון
אם אישרתם ל-MCT להתחבר לשירות דפדפן המדיה של האפליקציה, האפליקציה תופיע ברשימת ההטמעות של שירות דפדפן המדיה. מוצאים אותה שם ולוחצים על בקרה כדי להפעיל את האפליקציה ברקע.
אחרת, צריך קודם להפעיל את האפליקציה בעצמכם ברקע, ואז ללחוץ על שליטה כשהיא מופיעה ברשימה של סשנים פעילים של מדיה.
בדיקה של הכנה והפעלה
כשה-MCT מתחיל לשלוט באפליקציה, הוא מציג את המטא-נתונים של הסשן הנוכחי של האפליקציה: המדיה שנבחרה כרגע והפעולות שהסשן מוכן לטפל בהן.
בחלק העליון של דף אמצעי הבקרה של MCT יש תפריט נפתח שבו אפשר לבחור באפשרות Search, URI, מזהה מדיה או None, וגם שדה טקסט שבו אפשר לציין את נתוני הקלט שמשויכים ל-Search, ל-URI או למזהה מדיה אם בוחרים באחת מהאפשרויות האלה.
הלחצנים Prepare ו-Play שמתחת לשדה הטקסט מבצעים את הקריאות המתאימות (onPrepare(), onPrepareFromSearch(), onPrepareFromUri(), onPrepareFromMediaId(), onPlay(), onPlayFromSearch(), onPlayFromUri(), onPlayFromMediaId()) בהתאם לפעולה שבחרתם.
בדיקת הרשאת האודיו
אפליקציית מדיה שפועלת בצורה תקינה אמורה להיות מסוגלת לטפל במיקוד האודיו. כדי לבדוק את המיקוד באודיו, אתם יכולים להפעיל אפליקציית אודיו אחרת לצד האפליקציה שלכם. דף הפקדים של MCT כולל לחצן שמבקש ומשחרר את המיקוד באודיו.
כדי לבדוק את המיקוד באודיו, פועלים לפי השלבים הבאים:
- בתפריט הנפתח Audio Focus, בוחרים באחת משלוש האפשרויות לאורך הסרטון:
AUDIOFOCUS_GAIN, AUDIOFOCUS_GAIN_TRANSIENTאוAUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK. - כדי לבקש להתמקד, לוחצים על הכפתור.
- כדי לבטל את המיקוד, לוחצים שוב על הכפתור.
בדיקת פקדי ההעברה
מחליקים שמאלה כדי להציג את ממשק המשתמש של MCT. בתצוגה הזו יש את לחצני ההעברה הרגילים של ממשק השליטה במדיה, ומוצגים בה התמונה והנתונים של התוכנית בסשן. כפתורי ההפעלה המושבתים מוקפים בעיגול כתום. כל שאר החשבונות פעילים.
בודקים את הנגן באמצעות לחצני ההעברה. המצב של לחצני ההעברה אמור להשתנות כצפוי. לדוגמה, כשלוחצים על הלחצן "הפעלה", הוא צריך להיות מושבת, והלחצנים "השהיה" ו"עצירה" צריכים להיות מופעלים.
מחליקים שוב שמאלה כדי לראות את הפעולות האפשריות. לכל פעולה יש פקד שמראה אם היא פעילה או לא. אם הוא פעיל, אפשר ללחוץ עליו כדי לבצע את הפעולה.
אם התחברתם מרשימת האפליקציות שיש להן שירות דפדפן מדיה, אתם יכולים להחליק שמאלה עוד פעמיים כדי להציג תצוגות שמאפשרות לכם לעבור למעלה ולמטה בהיררכיית התוכן של האפליקציה, או לחפש בעץ התוכן.
בדיקה ידנית של אפליקציית וידאו
כדי לבדוק את הפקדים של אפליקציית הווידאו, משתמשים במצב מסך מפוצל. קודם פותחים את אפליקציית הסרטונים בחלון אחד, ואז פותחים את MCT במצב מסך מפוצל.
הרצת בדיקות אימות
מסגרת הבדיקה לאימות מציעה בדיקות בלחיצה אחת שאפשר להריץ כדי לוודא שאפליקציית המדיה מגיבה בצורה נכונה לבקשת הפעלה.
בדיקת אפליקציית "טלפון"
כדי לגשת לבדיקות האימות, לוחצים על הלחצן בדיקה לצד אפליקציית המדיה.
מצב MCT
בתצוגה הבאה מופיע מידע מפורט על MediaController של ה-MCT, למשל PlaybackState, מטא-נתונים ותור. בפינה השמאלית העליונה של סרגל הכלים יש שני כפתורים. הלחצן בצד ימין מאפשר לעבור בין יומנים שניתנים לניתוח לבין יומנים בפורמט. הלחצן בצד שמאל מרענן את התצוגה כדי להציג את המידע העדכני ביותר.
בחירת בדיקה
מחליקים שמאלה כדי להגיע לתצוגה של בדיקות האימות, שבה אפשר לראות רשימה נגללת של הבדיקות הזמינות. אם הבדיקה משתמשת בשאילתה, כמו הבדיקה "הפעלה מחיפוש" שמוצגת באיור 7, יש שדה טקסט להזנת מחרוזת השאילתה.
ה-MCT כולל בדיקות לפעולות המדיה הבאות, ובדיקות נוספות מתווספות לפרויקט כל הזמן:
- הפעלה
- הפעלה מחיפוש Google
- הפעלה ממזהה המדיה
- הפעלה מ-URI
- השהיה
- עצירה
- דילוג אל הלחצן הבא
- דילוג אל הלחצן הקודם
- דילוג לפריט בתור
- דילוג אל
תוצאות הבדיקה
אזור התוצאות בתחתית התצוגה ריק בהתחלה. כשתריצו בדיקה, התוצאות יופיעו כאן. לדוגמה, כדי להריץ את הבדיקה "הפעלה מחיפוש", מזינים שאילתת חיפוש בשדה הטקסט ולוחצים על הפעלת הבדיקה. בצילום המסך הבא מוצגת תוצאת בדיקה מוצלחת.
בדיקת אפליקציה ל-Android TV
כשמפעילים את MCT ב-Android TV, מוצגת רשימה של אפליקציות המדיה שמותקנות במכשיר. חשוב לזכור שאפליקציה תופיע ברשימה הזו רק אם היא מטמיעה שירות דפדפן מדיה.
אחרי שבוחרים אפליקציה, מועברים למסך הבדיקה, שבו מוצגת רשימה של בדיקות אימות בצד שמאל.
כשמריצים בדיקה, בצד שמאל של המסך מוצג מידע על ה-MediaController שנבחר. לפרטים נוספים, אפשר לבדוק את יומני ה-MCT ב-Logcat.
בדיקות שדורשות שאילתה מסומנות בסמל של מקלדת. לחיצה על אחת מהבדיקות האלה פותחת שדה להזנת קלט של השאילתה. לוחצים על Enter כדי להריץ את הבדיקה.
כדי להזין טקסט בקלות, אפשר גם להשתמש בפקודה adb:
adb shell input text your-query
אפשר להשתמש ב-"%s" כדי להוסיף רווח בין מילים. לדוגמה, הפקודה הבאה מוסיפה את הטקסט "שלום עולם" לשדה להזנת קלט.
adb shell input text hello%sworld
יצירת בדיקה
אתם יכולים לשלוח בקשת משיכה עם בדיקות נוספות שלדעתכם יכולות להועיל. כדי ללמוד איך ליצור בדיקות חדשות, היכנסו ל-MCT GitHub Wiki ועיינו בהוראות לבדיקת אימות.
למידע נוסף, קראו את ההוראות לשליחת משוב.
מקורות מידע נוספים
ה-MCT מיועד לשימוש בשילוב עם אפליקציות שמטמיעות ממשקי API של מדיה. נגן המוזיקה האוניברסלי ל-Android הוא דוגמה לאפליקציה כזו.
אנחנו תמיד שמחים לקבל תיקוני באגים והצעות לשיפורים. כאן מוסבר איך להוסיף תרומה.