मीडिया कंट्रोलर टेस्ट ऐप्लिकेशन का इस्तेमाल करके

Android फ़ोन, कारों, टीवी, और हेडफ़ोन पर Google Assistant के साथ बोलकर इंटरैक्ट करने वाले मीडिया ऐप्लिकेशन, Android मीडिया सेशन एपीआई की मदद से काम करते हैं. साथ ही, ये मीडिया ऐक्शन का इस्तेमाल करते हैं. मीडिया ऐक्शन की लाइफ़साइकल को समझना मुश्किल हो सकता है. खोज के अनुरोध से किसी गाने को चलाने की आसान प्रोसेस में भी कई चरण होते हैं. इनमें से किसी भी चरण में गड़बड़ी हो सकती है. इस आसान टाइमलाइन में, गड़बड़ी होने की संभावना वाले चरणों को दिखाया गया है:

मीडिया ऐक्शन लाइफ़साइकल

पहली इमेज. मीडिया के लिए कार्रवाई की लाइफ़साइकल

मीडिया कंट्रोलर टेस्ट (एमसीटी) ऐप्लिकेशन की मदद से, Android पर मीडिया प्लेबैक की बारीकियों को टेस्ट किया जा सकता है. साथ ही, मीडिया सेशन के लागू होने की पुष्टि की जा सकती है.

मीडिया कंट्रोलर टेस्ट ऐप्लिकेशन के दो वर्शन उपलब्ध हैं:

  • क्लाइंट ऐप्लिकेशन को लेगसी MediaControllerCompat के ऊपर लागू किया गया है. इससे आपको मीडिया सेशन वाले उस ऐप्लिकेशन को टेस्ट करने की सुविधा मिलती है जिसे लेगसी MediaSessionCompat या Media3 MediaSession पर बनाया गया है. ऐसा तब होता है, जब कोई बाहरी ऐप्लिकेशन, लेगसी MediaControllerCompat के ज़रिए इसे ऐक्सेस करता है. GitHub पर लेगसी वर्शन का सोर्स कोड देखें.
  • क्लाइंट ऐप्लिकेशन को Media3 के सबसे नए वर्शन पर लागू किया गया है MediaController. इससे, लेगसी MediaSessionCompat या Media3 MediaSession पर बनाए गए मीडिया सेशन ऐप्लिकेशन की जांच की जा सकती है. ऐसा तब किया जा सकता है, जब कोई बाहरी ऐप्लिकेशन, Media3 MediaController के ज़रिए इसे ऐक्सेस करता है. GitHub पर Media3 वर्शन का सोर्स कोड देखें.

एमसीटी, आपके ऐप्लिकेशन के MediaController के बारे में जानकारी दिखाता है. जैसे, इसका PlaybackState और मेटाडेटा. इसका इस्तेमाल, अलग-अलग ऐप्लिकेशन के मीडिया कंट्रोल की जांच करने के लिए किया जा सकता है. एमसीटी में पुष्टि करने के लिए टेस्टिंग फ़्रेमवर्क भी शामिल है. इसकी मदद से, क्वालिटी की जांच अपने-आप की जा सकती है.

एमसीटी का इस्तेमाल करने के लिए, आपके ऐप्लिकेशन में मीडिया ब्राउज़र सेवा होनी चाहिए. साथ ही, आपको एमसीटी को इससे कनेक्ट करने की अनुमति देनी होगी. ज़्यादा जानकारी के लिए, मीडिया ब्राउज़र सेवा बनाना देखें.

एमसीटी शुरू करना

MCT लॉन्च पेज
दूसरी इमेज. एमसीटी लॉन्च पेज

एमसीटी लॉन्च करने पर, आपको दो सूचियां दिखेंगी:

  • चालू MediaSessions - एमसीटी लॉन्च करने पर, यह सूची शुरुआत में खाली होती है. साथ ही, आपको "कोई मीडिया ऐप्लिकेशन नहीं मिला " मैसेज दिखेगा. ऐक्टिव मीडिया सेशन स्कैन करने के लिए, सूचना सुनने की अनुमति ज़रूरी है." अनुमतियों की स्क्रीन पर जाने के लिए, सेटिंग पर क्लिक करें. इसके बाद, एमसीटी के लिए अनुमति चालू करें.
  • MediaBrowserService लागू करने वाले ऐप्लिकेशन - इस सूची में वे ऐप्लिकेशन दिखते हैं जिन्होंने मीडिया ब्राउज़र सेवा लागू की है. अगर आपने मीडिया ब्राउज़र सेवा लागू की है, तो आपका ऐप्लिकेशन इस सूची में दिखेगा. हालांकि, एमसीटी का इस्तेमाल सिर्फ़ तब किया जा सकता है, जब आपने अपने ऐप्लिकेशन को सभी कनेक्शन स्वीकार करने के लिए कॉन्फ़िगर किया हो या एमसीटी को अनुमति वाली सूची में शामिल किया हो. ज़्यादा जानकारी के लिए, onGetRoot() की मदद से क्लाइंट कनेक्शन कंट्रोल करना लेख पढ़ें.

फ़ोन ऐप्लिकेशन को मैन्युअल तरीके से टेस्ट करना

अगर आपने एमसीटी को अपने ऐप्लिकेशन की मीडिया ब्राउज़र सेवा से कनेक्ट करने की अनुमति दी है, तो आपका ऐप्लिकेशन मीडिया ब्राउज़र सेवा की सूची में दिखता है. इसे वहां ढूंढें और बैकग्राउंड में अपना ऐप्लिकेशन शुरू करने के लिए, कंट्रोल पर क्लिक करें.

अगर ऐसा नहीं है, तो आपको पहले अपने ऐप्लिकेशन को बैकग्राउंड में चालू करना होगा. इसके बाद, चालू मीडिया सेशन की सूची में ऐप्लिकेशन दिखने पर, कंट्रोल करें पर क्लिक करें.

टेस्टिंग के लिए तैयार करें और चलाएं

जब एमसीटी आपके ऐप्लिकेशन को कंट्रोल करना शुरू करता है, तो यह ऐप्लिकेशन के मौजूदा सेशन का मेटाडेटा दिखाता है: फ़िलहाल चुना गया मीडिया और वे कार्रवाइयां जिन्हें सेशन हैंडल करने के लिए तैयार है.

कंट्रोल पेज
तीसरी इमेज. कंट्रोल पेज

एमसीटी कंट्रोल पेज के सबसे ऊपर, एक ड्रॉप-डाउन मेन्यू होता है. इसमें खोजें, यूआरआई, मीडिया आईडी या कोई नहीं को चुना जा सकता है. साथ ही, इसमें एक टेक्स्ट फ़ील्ड भी होता है. अगर इनमें से कोई विकल्प चुना जाता है, तो खोज, यूआरआई या मीडिया आईडी से जुड़ा इनपुट डेटा डालने के लिए, इस टेक्स्ट फ़ील्ड का इस्तेमाल किया जा सकता है.

टेक्स्ट फ़ील्ड के ठीक नीचे मौजूद तैयार करें और चलाएं बटन, आपकी चुनी गई कार्रवाई के आधार पर सही कॉल (onPrepare(), onPrepareFromSearch(), onPrepareFromUri(), onPrepareFromMediaId(), onPlay(), onPlayFromSearch(), onPlayFromUri(), onPlayFromMediaId()) करते हैं.

ऑडियो फ़ोकस की जांच करना

एक अच्छे मीडिया ऐप्लिकेशन को ऑडियो फ़ोकस को मैनेज करना आना चाहिए. अपने ऐप्लिकेशन के साथ कोई दूसरा ऑडियो ऐप्लिकेशन चलाकर, ऑडियो फ़ोकस की जांच की जा सकती है. एमसीटी कंट्रोल पेज पर एक बटन होता है, जो ऑडियो फ़ोकस का अनुरोध करता है और उसे रिलीज़ करता है.

ऑडियो फ़ोकस की जांच करने के लिए, यह तरीका अपनाएं:

  1. ऑडियो फ़ोकस ड्रॉप-डाउन मेन्यू का इस्तेमाल करके, अवधि के तीन हिंट में से कोई एक चुनें: AUDIOFOCUS_GAIN, AUDIOFOCUS_GAIN_TRANSIENT या AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK.
  2. फ़ोकस का अनुरोध करने के लिए, बटन दबाएं.
  3. फ़ोकस हटाने के लिए, बटन को फिर से दबाएं.

ट्रांसपोर्ट कंट्रोल की जांच करना

ट्रांसपोर्ट कंट्रोल की जांच करना
चौथी इमेज. ट्रांसपोर्ट कंट्रोल की जांच करना

एमसीटी का यूज़र इंटरफ़ेस (यूआई) व्यू दिखाने के लिए, बाईं ओर स्वाइप करें. इस व्यू में, स्टैंडर्ड मीडिया कंट्रोलर के ट्रांसपोर्ट बटन होते हैं. साथ ही, इसमें सेशन की प्रोग्राम इमेज और डेटा दिखता है. बंद किए गए ट्रांसपोर्ट बटन को नारंगी रंग से घेरा गया है. अन्य सभी चालू हैं.

ट्रांसपोर्ट बटन का इस्तेमाल करके, अपने प्लेयर की जांच करें. ट्रांसपोर्ट बटन की स्थिति, उम्मीद के मुताबिक बदलनी चाहिए. उदाहरण के लिए, जब PLAY बटन दबाया जाता है, तो उसे बंद हो जाना चाहिए. साथ ही, PAUSE और STOP बटन चालू हो जाने चाहिए.

वैकल्पिक कार्रवाइयां दिखाने वाले व्यू के लिए, फिर से बाईं ओर स्वाइप करें. हर कार्रवाई के लिए एक कंट्रोल होता है. इससे पता चलता है कि वह कार्रवाई चालू है या नहीं. अगर यह चालू है, तो इस पर क्लिक करके कार्रवाई की जा सकती है.

अगर आपने मीडिया ब्राउज़र की सेवा देने वाले ऐप्लिकेशन की सूची से कनेक्ट किया है, तो बाईं ओर दो बार और स्वाइप करें. इससे आपको ऐसे व्यू दिखेंगे जिनकी मदद से, ऐप्लिकेशन के कॉन्टेंट की हैरारकी को ऊपर और नीचे स्क्रोल किया जा सकता है या कॉन्टेंट ट्री को खोजा जा सकता है.

वीडियो ऐप्लिकेशन की मैन्युअल टेस्टिंग

वीडियो ऐप्लिकेशन के कंट्रोलर की जांच करने के लिए, स्प्लिट-स्क्रीन मोड का इस्तेमाल करें. सबसे पहले, एक विंडो में अपना वीडियो ऐप्लिकेशन खोलें. इसके बाद, स्प्लिट-स्क्रीन मोड में एमसीटी खोलें.

पुष्टि करने के लिए टेस्ट चलाना

पुष्टि करने के लिए टेस्टिंग फ़्रेमवर्क, एक क्लिक में टेस्ट करने की सुविधा देता है. इसे चलाकर यह पक्का किया जा सकता है कि आपका मीडिया ऐप्लिकेशन, प्लेबैक के अनुरोध का सही तरीके से जवाब दे रहा है या नहीं.

फ़ोन ऐप्लिकेशन की जांच करना

टेस्ट बटन
पांचवीं इमेज. टेस्ट बटन

पुष्टि करने के लिए टेस्ट ऐक्सेस करने के लिए, अपने मीडिया ऐप्लिकेशन के बगल में मौजूद टेस्ट बटन पर क्लिक करें.

एमसीटी की स्थिति

मीडिया कंट्रोल की स्थिति
छठी इमेज. मीडिया कंट्रोल करने की सेटिंग

अगले व्यू में, आपको एमसीटी MediaController के बारे में ज़्यादा जानकारी दिखेगी. उदाहरण के लिए, PlaybackState, मेटाडेटा, और सूची. टूलबार के सबसे ऊपर दाईं ओर दो बटन हैं. बाईं ओर मौजूद बटन, पार्स किए जा सकने वाले और फ़ॉर्मैट किए गए लॉग के बीच टॉगल करता है. दाईं ओर मौजूद बटन, व्यू को रीफ़्रेश करता है, ताकि सबसे नई जानकारी दिखाई जा सके.

कोई टेस्ट चुनना

टेस्ट चुनने वाला पेज
सातवीं इमेज. टेस्ट चुनने वाला पेज

बाईं ओर स्वाइप करने पर, आपको पुष्टि करने के लिए उपलब्ध टेस्ट की सूची दिखेगी. इस सूची को स्क्रोल किया जा सकता है. अगर किसी टेस्ट में क्वेरी का इस्तेमाल किया जाता है, तो क्वेरी स्ट्रिंग डालने के लिए एक टेक्स्ट फ़ील्ड होता है. जैसे, इमेज 7 में दिखाया गया, खोज से चलाए जाने वाला टेस्ट.

एमसीटी में, इन मीडिया ऐक्शन की जांच की जाती है. साथ ही, प्रोजेक्ट में लगातार और जांचें जोड़ी जाती हैं:

  • चलाएं
  • खोज के नतीजों से चलाएं
  • मीडिया आईडी से चलाएं
  • यूआरआई से चलाएं
  • रोकें
  • रोकें
  • आगे जाएं
  • पीछे जाएं
  • सूची में मौजूद आइटम पर जाएं
  • इस पर जाएं

परीक्षण परिणाम

जांच का सफल नतीजा
आठवीं इमेज. जांच का नतीजा पॉज़िटिव है

व्यू में सबसे नीचे मौजूद नतीजों वाला सेक्शन, शुरुआत में खाली होता है. टेस्ट चलाने पर, यह आपको नतीजे दिखाएगा. उदाहरण के लिए, खोज के नतीजों से वीडियो चलाने की जांच करने के लिए, टेक्स्ट फ़ील्ड में कोई सर्च क्वेरी डालें और जांच करें पर क्लिक करें. इस स्क्रीनशॉट में, टेस्ट का नतीजा दिखाया गया है.

Android TV के ऐप्लिकेशन की जांच करना

Android TV पर एमसीटी लॉन्च करने पर, आपको इंस्टॉल किए गए मीडिया ऐप्लिकेशन की सूची दिखती है. ध्यान दें कि कोई ऐप्लिकेशन इस सूची में सिर्फ़ तब दिखेगा, जब वह मीडिया ब्राउज़र सेवा को लागू करेगा.

टीवी पर एमसीटी लॉन्च पेज

नौवीं इमेज. टीवी पर एमसीटी का लॉन्च पेज

किसी ऐप्लिकेशन को चुनने पर, आपको टेस्टिंग स्क्रीन पर ले जाया जाता है. इसमें दाईं ओर, पुष्टि करने के लिए किए जाने वाले टेस्ट की सूची दिखती है.

टीवी पर पुष्टि करने के लिए टेस्ट वाला पेज

दसवीं इमेज. टीवी पर पुष्टि करने के लिए टेस्ट पेज

टेस्ट चलाने पर, स्क्रीन पर बाईं ओर चुने गए MediaController के बारे में जानकारी दिखती है. ज़्यादा जानकारी के लिए, Logcat में एमसीटी लॉग देखें.

टीवी पर टेस्ट की जानकारी वाला पेज

11वीं इमेज. टीवी पर टेस्ट की जानकारी देने वाला पेज

जिन टेस्ट के लिए क्वेरी की ज़रूरत होती है उन्हें कीबोर्ड आइकॉन से मार्क किया जाता है. इनमें से किसी एक टेस्ट पर क्लिक करने से, क्वेरी के लिए एक इनपुट फ़ील्ड खुलता है. टेस्ट चलाने के लिए, Enter पर क्लिक करें.

टेक्स्ट इनपुट को आसान बनाने के लिए, adb निर्देश का भी इस्तेमाल किया जा सकता है:

adb shell input text your-query

शब्दों के बीच स्पेस जोड़ने के लिए, "%s" का इस्तेमाल किया जा सकता है. उदाहरण के लिए, नीचे दिया गया निर्देश, इनपुट फ़ील्ड में "नमस्ते" टेक्स्ट जोड़ता है.

adb shell input text hello%sworld

टेस्ट बनाना

आपके पास पुल का अनुरोध सबमिट करने का विकल्प है. इसमें ऐसे और टेस्ट शामिल किए जा सकते हैं जो आपको काम के लगते हैं. नए टेस्ट बनाने का तरीका जानने के लिए, MCT GitHub Wiki पर जाएं और पुष्टि करने के लिए टेस्ट से जुड़े निर्देश देखें.

ज़्यादा जानकारी के लिए, योगदान देने के निर्देश देखें.

अन्य संसाधन

एमसीटी का इस्तेमाल, मीडिया एपीआई लागू करने वाले ऐप्लिकेशन के साथ किया जाता है. इस तरह के ऐप्लिकेशन का उदाहरण देखने के लिए, यूनिवर्सल Android म्यूज़िक प्लेयर देखें.

गड़बड़ियां ठीक करने और सुधार करने के लिए, आपका हमेशा स्वागत है. कृपया योगदान देने के निर्देश देखें.