برنامههای رسانهای که ازطریق صدا با «دستیار Google» در تلفنهای Android، خودروها، تلویزیونها، و هدفونها تعامل برقرار میکنند، با میاناهای برنامهسازی کاربردی جلسه رسانه Android پشتیبانی میشوند و از کنشهای رسانه استفاده میکنند. دنبال کردن چرخه حیات کنش رسانه میتواند دشوار باشد. حتی یک درخواست پخش ساده از جستجو مراحل میانی زیادی دارد که ممکن است در آنها مشکلی پیش بیاید، همانطور که در خط زمان سادهشده نشان داده شده است:
برنامه Media Controller Test (MCT) به شما امکان میدهد پیچیدگیهای بازپخش رسانه را در Android آزمایش کنید و به شما کمک میکند پیادهسازی جلسه رسانه را تأیید کنید.
برنامه Media Controller Test در دو نسخه دردسترس است:
- برنامه کارخواه روی
MediaControllerCompatقدیمی پیادهسازی شده است. این کار امکان آزمایش برنامه جلسه رسانه ساختهشده براساسMediaSessionCompatقدیمی یا Media3MediaSessionرا هنگام دسترسی برنامه خارجی ازطریقMediaControllerCompatقدیمی فراهم میکند. کد منبع نسخه قدیمی را در GitHub پیدا کنید. - برنامه مشتری روی جدیدترین Media3
MediaControllerپیادهسازی شده است. این کار امکان آزمایش برنامه جلسه رسانه شما را که براساسMediaSessionCompatقدیمی یا Media3MediaSessionساخته شده است، هنگام دسترسی برنامه خارجی ازطریق Media3MediaControllerفراهم میکند. کد منبع نسخه Media3 را در GitHub پیدا کنید.
MCT اطلاعاتی درباره MediaController برنامهتان، مثل
PlaybackState و فراداده آن، نشان میدهد و میتوان از آن برای آزمایش کنترلهای رسانه بینبرنامهای استفاده کرد.
MCT همچنین شامل یک چارچوب آزمایش درستیسنجی است که به شما امکان میدهد آزمایش تضمین کیفیت خود را خودکار کنید.
برای استفاده از MCT، برنامه شما باید سرویس مرورگر رسانه داشته باشد و باید به MCT اجازه دهید به آن متصل شود. برای اطلاعات بیشتر، ساختن سرویس مرورگر رسانه را ببینید.
درحال شروع MCT
وقتی MCT را راهاندازی میکنید، دو فهرست خواهید دید:
- Active MediaSessions - This list is initially empty when you launch the MCT and you'll see the message "No media apps found. برای اسکن کردن جلسههای رسانه فعال، به اجازه «شنونده اعلان» نیاز است. روی تنظیمات کلیک کنید تا به صفحه اجازهها بروید و اجازه MCT را فعال کنید.
- پیادهسازیهای MediaBrowserService - این فهرست برنامههایی را نشان میدهد که سرویس مرورگر رسانه را پیادهسازی کردهاند. اگر سرویس مرورگر رسانه را پیادهسازی کرده باشید، برنامهتان در این فهرست نشان داده میشود، اما فقط درصورتی میتوانید از MCT استفاده کنید که برنامهتان را برای پذیرش همه اتصالها پیکربندی کرده باشید یا MCT را در فهرست مجاز قرار داده باشید. برای اطلاعات بیشتر، کنترل کردن اتصالهای کارخواه با onGetRoot() را ببینید.
آزمایش دستی برنامه تلفن
اگر به MCT اجازه داده باشید به سرویس مرورگر رسانه برنامهتان متصل شود، برنامهتان در فهرست پیادهسازیهای فهرست سرویس مرورگر رسانه نشان داده میشود. آن را در آنجا پیدا کنید و روی کنترل کلیک کنید تا برنامهتان در پسزمینه شروع شود.
درغیراینصورت، ابتدا باید خودتان برنامهتان را در پسزمینه شروع کنید، سپس وقتی در فهرست جلسههای رسانه فعال ظاهر شد، روی کنترل کلیک کنید.
درحال آزمایش آمادهسازی و پخش
وقتی MCT کنترل برنامه شما را شروع میکند، فراداده جلسه فعلی برنامه را نمایش میدهد: رسانه انتخابشده فعلی و کنشهایی که جلسه برای رسیدگی به آنها آماده است.
بالای صفحه کنترلهای MCT حاوی یک منوِ کرکرهای است که در آن میتوانید جستجو، URI، شناسه رسانه، یا هیچکدام را انتخاب کنید، همراه با یک فیلد نوشتاری برای مشخص کردن دادههای ورودی مرتبط با جستجو، URI، یا شناسه رسانه اگر یکی از آن گزینهها را انتخاب کنید.
دکمههای آمادهسازی و پخش درست در زیر فیلد نوشتاری، بسته به کنشی که انتخاب کردهاید،
فراخوانیهای مناسب (onPrepare()، onPrepareFromSearch()، onPrepareFromUri()،
onPrepareFromMediaId()، onPlay()، onPlayFromSearch()، onPlayFromUri()،
onPlayFromMediaId()) را انجام میدهند.
درحال آزمایش اولویت صوتی
یک برنامه رسانه با رفتار مناسب باید بتواند تمرکز صدا را مدیریت کند. میتوانید تمرکز صوتی را با اجرای برنامه صوتی دیگری در کنار برنامه خودتان آزمایش کنید. صفحه کنترلهای MCT شامل دکمهای است که تمرکز صوتی را درخواست و رها میکند.
برای آزمایش تمرکز صوتی، این مراحل را دنبال کنید:
- از منوِ کرکرهای تمرکز صوتی برای انتخاب یکی از سه راهنمایی مدتزمان
AUDIOFOCUS_GAIN،AUDIOFOCUS_GAIN_TRANSIENT، یاAUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCKاستفاده کنید. - برای درخواست فوکوس، دکمه را فشار دهید.
- برای رها کردن کانون، دکمه را دوباره فشار دهید.
درحال آزمایش کنترلهای حملونقل
برای نمایش نمای میانای کاربر MCT، تند به چپ بکشید. این نما دکمههای انتقال کنترلکننده رسانه استاندارد را دارد و تصویر و دادههای برنامه جلسه را نشان میدهد. دکمههای انتقال غیرفعال با دایره نارنجی مشخص شدهاند. همه موارد دیگر فعال هستند.
پخشکننده را بااستفاده از دکمههای انتقال آزمایش کنید. وضعیت دکمههای انتقال باید طبق انتظار تغییر کند. برای مثال، وقتی دکمه «پخش» را فشار میدهید، این دکمه باید غیرفعال شود و دکمههای «مکث» و «توقف» فعال شوند.
دوباره تند بهچپ بکشید تا نمایی را ببینید که کنشهای اختیاری را نمایش میدهد. هر کنش کنترلی دارد که نشان میدهد فعال است یا نه. اگر فعال باشد، میتوانید با کلیک کردن روی آن، کنش را انجام دهید.
اگر از فهرست برنامههایی که سرویس مرورگر رسانه دارند متصل شدهاید، میتوانید دو بار دیگر تند به چپ بکشید تا نماهایی را ببینید که به شما امکان میدهد در سلسلهمراتب محتوای برنامهتان بالا و پایین بروید یا درخت محتوا را جستجو کنید.
آزمایش دستی برنامه ویدیویی
از حالت صفحه دونیمه برای آزمایش کنترلکنندههای برنامه ویدیو استفاده کنید. ابتدا برنامه ویدیوییتان را در یک پنجره باز کنید و سپس MCT را در حالت صفحه دونیمه باز کنید.
درحال اجرای آزمایشهای درستیسنجی
چارچوب آزمایشی درستیسنجی آزمایشهای تککلیکی ارائه میدهد که میتوانید برای اطمینان از اینکه برنامه رسانهتان بهدرستی به درخواست بازپخش پاسخ میدهد، آنها را اجرا کنید.
درحال آزمایش برنامه تلفن
برای دسترسی به آزمایشهای درستیسنجی، روی دکمه آزمایش در کنار برنامه رسانه خود کلیک کنید.
وضعیت MCT
نمای بعدی اطلاعات دقیقی درباره MediaController MCT نشان میدهد،
برای مثال PlaybackState، فراداده، و صف. دو دکمه در بالا سمت چپ نوارابزار وجود دارد. دکمه سمت چپ بین گزارشهای قابلتجزیه
و قالببندیشده جابهجا میشود. دکمه سمت چپ، نما را بازآوری میکند تا جدیدترین اطلاعات را نمایش دهد.
انتخاب آزمایش
با تند کشیدن به چپ، به نمای آزمایشهای درستیسنجی میرسید که در آنجا میتوانید فهرست پیمایشی آزمایشهای دردسترس را ببینید. اگر آزمایشی از پُرسمان استفاده میکند، مثل آزمایش پخش از جستجو که در شکل ۷ نشان داده شده است، فیلد نوشتاری برای وارد کردن رشته پُرسمان وجود دارد.
MCT شامل آزمایشهایی برای کنشهای رسانهای زیر است و آزمایشهای بیشتری بهطور مداوم به پروژه اضافه میشود:
- پخش کردن
- پخش از «جستجو»
- پخش از شناسه رسانه
- پخش از 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 برای استفاده همراه با برنامههایی است که میاناهای برنامهسازی کاربردی رسانه را پیادهسازی میکنند. برای نمونهای از چنین برنامهای، پخشکننده موسیقی Android جهانی را ببینید.
همیشه از رفع اشکالها و بهبودها استقبال میشود. لطفاً دستورالعملهای همیاری را ببینید.