برنامههای رسانهای که در تلفنها، اتومبیلها، تلویزیونها و هدفونهای Android بهصورت صوتی با «دستیار Google» تعامل دارند، توسط APIهای جلسه رسانه Android پشتیبانی میشوند و از کنشهای رسانه استفاده میکنند. پیروی از چرخه حیات کنش رسانه ای دشوار است. حتی یک بازی ساده از درخواست جستجو، مراحل میانی زیادی دارد که ممکن است مشکلی پیش بیاید، همانطور که در جدول زمانی ساده نشان داده شده است:
برنامه Media Controller Test (MCT) به شما امکان میدهد پیچیدگیهای پخش رسانه را در Android آزمایش کنید و به تأیید اجرای جلسه رسانه خود کمک میکند.
MCT اطلاعات مربوط به MediaController
برنامه شما، مانند PlaybackState
و ابرداده آن را نشان میدهد و میتواند برای آزمایش کنترلهای رسانه بین برنامهای استفاده شود. MCT همچنین شامل یک چارچوب تست تأیید است که به شما امکان می دهد آزمایش QA خود را خودکار کنید.
برای استفاده از MCT، برنامه شما باید یک سرویس مرورگر رسانه داشته باشد و باید اجازه دهید MCT به آن متصل شود. برای اطلاعات بیشتر به ساخت سرویس مرورگر رسانه مراجعه کنید.
شروع MCT
![صفحه راه اندازی MCT](https://developer.android.com/static/media/images/MCT/MCT-Launch-Screen.png?authuser=2&hl=fa)
هنگامی که MCT را راه اندازی می کنید، دو لیست خواهید دید:
- Active MediaSessions - هنگامی که MCT را راه اندازی می کنید، این لیست در ابتدا خالی است و پیام "هیچ برنامه رسانه ای یافت نشد. مجوز شنونده اعلان برای اسکن برای جلسات رسانه فعال مورد نیاز است." روی تنظیمات کلیک کنید تا به صفحه مجوزها بروید و مجوز MCT را فعال کنید.
- MediaBrowserService Implementations - این لیست برنامه هایی را نشان می دهد که یک سرویس مرورگر رسانه را پیاده سازی کرده اند. اگر یک سرویس مرورگر رسانه را پیادهسازی کرده باشید، برنامه شما در این لیست ظاهر میشود، اما تنها در صورتی میتوانید از MCT استفاده کنید که برنامه خود را برای پذیرش همه اتصالات پیکربندی کرده باشید یا MCT را در فهرست مجاز قرار داده باشید. برای اطلاعات بیشتر به کنترل اتصالات مشتری با ()onGetRoot مراجعه کنید.
آزمایش دستی یک برنامه تلفن
اگر به MCT اجازه داده اید به سرویس مرورگر رسانه برنامه شما متصل شود، برنامه شما در لیست پیاده سازی لیست خدمات مرورگر رسانه ظاهر می شود. آن را در آنجا پیدا کنید و روی Control کلیک کنید تا برنامه شما در پسزمینه شروع شود.
در غیر این صورت، ابتدا باید برنامه خود را خودتان در پسزمینه راهاندازی کنید، سپس وقتی در لیست جلسات رسانه فعال ظاهر شد، روی Control کلیک کنید.
تست آماده سازی و بازی
هنگامی که MCT شروع به کنترل برنامه شما می کند، فراداده جلسه فعلی برنامه را نمایش می دهد: رسانه انتخاب شده فعلی و اقداماتی که جلسه برای انجام آنها آماده شده است.
![صفحه کنترل](https://developer.android.com/static/media/images/MCT/audio-focus.png?authuser=2&hl=fa)
بالای صفحه کنترلهای MCT حاوی یک منوی کشویی است که در آن میتوانید جستجو ، URI ، شناسه رسانه یا هیچکدام را به همراه یک فیلد نوشتاری برای تعیین دادههای ورودی مرتبط با جستجو، URI یا شناسه رسانه انتخاب کنید. یکی از آن گزینه ها
دکمههای Prepare و Play درست در زیر فیلد متن، فراخوانیهای مناسب را انجام میدهند ( onPrepare()
, onPrepareFromSearch()
, onPrepareFromUri()
, onPrepareFromMediaId()
, onPlay()
, onPlayFromSearch()
onPlayFromUri()
, onPlayFromMediaId()
(بسته به whatId) اقدامی که انتخاب کردید
تست فوکوس صوتی
یک برنامه رسانه با رفتار خوب باید بتواند فوکوس صوتی را مدیریت کند. می توانید فوکوس صوتی را با اجرای یک برنامه صوتی دیگر در کنار برنامه خود آزمایش کنید. صفحه کنترلهای MCT شامل دکمهای است که فوکوس صوتی را درخواست و آزاد میکند.
برای تست فوکوس صوتی، این مراحل را دنبال کنید:
- از منوی کشویی Focus Audio برای انتخاب یکی از سه نکته مدت زمان
AUDIOFOCUS_GAIN
،AUDIOFOCUS_GAIN_TRANSIENT
، یاAUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK
استفاده کنید. - برای درخواست فوکوس دکمه را فشار دهید.
- دوباره دکمه را فشار دهید تا فوکوس آزاد شود.
تست کنترل های حمل و نقل
![تست کنترل های حمل و نقل](https://developer.android.com/static/media/images/MCT/MCT-Controller-Screen.png?authuser=2&hl=fa)
برای نمایش نمای رابط کاربری MCT، انگشت خود را به چپ بکشید. این نما دارای دکمه های استاندارد انتقال کنترلر رسانه است و تصویر برنامه و داده های جلسه را نشان می دهد. دکمه های حمل و نقل غیرفعال شده به رنگ نارنجی دایره شده اند. بقیه همه فعال هستند
پخش کننده خود را با استفاده از دکمه های حمل و نقل تست کنید. وضعیت دکمه های حمل و نقل باید همانطور که انتظار می رود تغییر کند. به عنوان مثال، هنگامی که دکمه PLAY را فشار می دهید باید غیرفعال شود و دکمه های MAUSE و STOP فعال می شوند.
برای نمایشی که اقدامات اختیاری را نشان می دهد، دوباره انگشت خود را به چپ بکشید. هر عمل دارای یک کنترل است که فعال بودن یا نبودن آن را نشان می دهد. اگر فعال است، می توانید با کلیک بر روی آن عمل را انجام دهید.
اگر از لیست برنامههایی که سرویس مرورگر رسانه دارند وصل شدهاید، میتوانید دو بار دیگر به سمت چپ بکشید تا نماهایی را مشاهده کنید که به شما امکان میدهند سلسله مراتب محتوای برنامه خود را بالا و پایین بروید یا درخت محتوا را جستجو کنید.
آزمایش دستی یک برنامه ویدیویی
از حالت تقسیم صفحه برای آزمایش کنترلرهای برنامه ویدیویی استفاده کنید. ابتدا برنامه ویدیویی خود را در یک پنجره باز کنید و سپس MCT را در حالت تقسیم صفحه باز کنید.
اجرای تست های تایید
چارچوب تست تأیید، آزمایشهایی را با یک کلیک ارائه میکند که میتوانید برای اطمینان از پاسخ صحیح برنامه رسانهتان به درخواست پخش، آنها را اجرا کنید.
تست اپلیکیشن گوشی
![دکمه تست](https://developer.android.com/static/media/images/MCT/MCT-Test-Button.png?authuser=2&hl=fa)
برای دسترسی به تستهای تایید، روی دکمه تست در کنار برنامه رسانه خود کلیک کنید.
وضعیت MCT
![دولت کنترل رسانه ها](https://developer.android.com/static/media/images/MCT/MCT-Testing-Info-Screen.png?authuser=2&hl=fa)
نمای بعدی اطلاعات دقیقی را درباره MediaController
MCT به شما نشان می دهد، به عنوان مثال PlaybackState
، ابرداده و صف. دو دکمه در سمت راست بالای نوار ابزار وجود دارد. دکمه سمت چپ بین گزارشهای قابل تجزیه و قالببندی جابجا میشود. دکمه سمت راست نمای را تازه می کند تا جدیدترین اطلاعات نمایش داده شود.
انتخاب یک آزمون
![صفحه انتخاب آزمون](https://developer.android.com/static/media/images/MCT/MCT-Testing-Verification-Screen.png?authuser=2&hl=fa)
با کشیدن انگشت به سمت چپ، به نمای تست های تأیید می رسید، جایی که می توانید لیستی از آزمایش های موجود را ببینید. اگر آزمایشی از یک پرس و جو استفاده می کند، مانند آزمایش پخش از جستجو که در شکل 7 نشان داده شده است، یک فیلد متنی برای وارد کردن رشته پرس و جو وجود دارد.
MCT شامل آزمایشهایی برای اقدامات رسانهای زیر است و آزمایشهای بیشتری به طور مداوم به پروژه اضافه میشود:
- بازی کنید
- پخش از جستجو
- Play From Media ID
- پخش از URI
- مکث کنید
- توقف کنید
- پرش به بعدی
- پرش به قبلی
- پرش به صف مورد
- به دنبال
نتایج تست
![یک نتیجه آزمایشی موفق](https://developer.android.com/static/media/images/MCT/MCT-Testing-Success-Screen.png?authuser=2&hl=fa)
ناحیه نتایج در پایین نما در ابتدا خالی است. هنگام اجرای یک آزمایش، نتایج را نشان می دهد. به عنوان مثال، برای اجرای بازی از تست جستجو، یک عبارت جستجو را در قسمت متن وارد کنید و روی اجرای تست کلیک کنید. تصویر زیر نتیجه آزمایش موفقیت آمیز را نشان می دهد.
تست برنامه 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 قرار است همراه با برنامه هایی استفاده شود که API های رسانه را پیاده سازی می کنند. برای نمونه ای از چنین برنامه ای به پخش کننده موسیقی جهانی اندروید مراجعه کنید.
رفع اشکال و بهبود همیشه مورد استقبال قرار می گیرد. لطفاً دستورالعمل مشارکت را ببینید.