استفاده از برنامه آزمایشی کنترل‌کننده رسانه

برنامه‌های رسانه‌ای که ازطریق صدا با «دستیار Google» در تلفن‌های Android، خودروها، تلویزیون‌ها، و هدفون‌ها تعامل برقرار می‌کنند، با میاناهای برنامه‌سازی کاربردی جلسه رسانه Android پشتیبانی می‌شوند و از کنش‌های رسانه استفاده می‌کنند. دنبال کردن چرخه حیات کنش رسانه می‌تواند دشوار باشد. حتی یک درخواست پخش ساده از جستجو مراحل میانی زیادی دارد که ممکن است در آن‌ها مشکلی پیش بیاید، همان‌طور که در خط زمان ساده‌شده نشان داده شده است:

چرخه حیات کنش رسانه

شکل ۱. چرخه حیات کنش رسانه

برنامه Media Controller Test (MCT) به شما امکان می‌دهد پیچیدگی‌های بازپخش رسانه را در Android آزمایش کنید و به شما کمک می‌کند پیاده‌سازی جلسه رسانه را تأیید کنید.

برنامه Media Controller Test در دو نسخه دردسترس است:

  • برنامه کارخواه روی MediaControllerCompat قدیمی پیاده‌سازی شده است. این کار امکان آزمایش برنامه جلسه رسانه ساخته‌شده براساس MediaSessionCompat قدیمی یا Media3 MediaSession را هنگام دسترسی برنامه خارجی ازطریق MediaControllerCompat قدیمی فراهم می‌کند. کد منبع نسخه قدیمی را در GitHub پیدا کنید.
  • برنامه مشتری روی جدیدترین Media3 MediaController پیاده‌سازی شده است. این کار امکان آزمایش برنامه جلسه رسانه شما را که براساس MediaSessionCompat قدیمی یا Media3 MediaSession ساخته شده است، هنگام دسترسی برنامه خارجی ازطریق Media3 MediaController فراهم می‌کند. کد منبع نسخه Media3 را در GitHub پیدا کنید.

MCT اطلاعاتی درباره MediaController برنامه‌تان، مثل PlaybackState و فراداده آن، نشان می‌دهد و می‌توان از آن برای آزمایش کنترل‌های رسانه بین‌برنامه‌ای استفاده کرد. MCT همچنین شامل یک چارچوب آزمایش درستی‌سنجی است که به شما امکان می‌دهد آزمایش تضمین کیفیت خود را خودکار کنید.

برای استفاده از MCT، برنامه شما باید سرویس مرورگر رسانه داشته باشد و باید به 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 شامل دکمه‌ای است که تمرکز صوتی را درخواست و رها می‌کند.

برای آزمایش تمرکز صوتی، این مراحل را دنبال کنید:

  1. از منوِ کرکره‌ای تمرکز صوتی برای انتخاب یکی از سه راهنمایی مدت‌زمان AUDIOFOCUS_GAIN، AUDIOFOCUS_GAIN_TRANSIENT، یا AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK استفاده کنید.
  2. برای درخواست فوکوس، دکمه را فشار دهید.
  3. برای رها کردن کانون، دکمه را دوباره فشار دهید.

درحال آزمایش کنترل‌های حمل‌ونقل

درحال آزمایش کنترل‌های حمل‌ونقل
شکل ۴. درحال آزمایش کنترل‌های حمل‌ونقل

برای نمایش نمای میانای کاربر MCT، تند به چپ بکشید. این نما دکمه‌های انتقال کنترل‌کننده رسانه استاندارد را دارد و تصویر و داده‌های برنامه جلسه را نشان می‌دهد. دکمه‌های انتقال غیرفعال با دایره نارنجی مشخص شده‌اند. همه موارد دیگر فعال هستند.

پخش‌کننده را بااستفاده از دکمه‌های انتقال آزمایش کنید. وضعیت دکمه‌های انتقال باید طبق انتظار تغییر کند. برای مثال، وقتی دکمه «پخش» را فشار می‌دهید، این دکمه باید غیرفعال شود و دکمه‌های «مکث» و «توقف» فعال شوند.

دوباره تند به‌چپ بکشید تا نمایی را ببینید که کنش‌های اختیاری را نمایش می‌دهد. هر کنش کنترلی دارد که نشان می‌دهد فعال است یا نه. اگر فعال باشد، می‌توانید با کلیک کردن روی آن، کنش را انجام دهید.

اگر از فهرست برنامه‌هایی که سرویس مرورگر رسانه دارند متصل شده‌اید، می‌توانید دو بار دیگر تند به چپ بکشید تا نماهایی را ببینید که به شما امکان می‌دهد در سلسله‌مراتب محتوای برنامه‌تان بالا و پایین بروید یا درخت محتوا را جستجو کنید.

آزمایش دستی برنامه ویدیویی

از حالت صفحه دونیمه برای آزمایش کنترل‌کننده‌های برنامه ویدیو استفاده کنید. ابتدا برنامه ویدیویی‌تان را در یک پنجره باز کنید و سپس MCT را در حالت صفحه دونیمه باز کنید.

درحال اجرای آزمایش‌های درستی‌سنجی

چارچوب آزمایشی درستی‌سنجی آزمایش‌های تک‌کلیکی ارائه می‌دهد که می‌توانید برای اطمینان از اینکه برنامه رسانه‌تان به‌درستی به درخواست بازپخش پاسخ می‌دهد، آن‌ها را اجرا کنید.

درحال آزمایش برنامه تلفن

دکمه آزمایش
شکل ۵. دکمه آزمایش

برای دسترسی به آزمایش‌های درستی‌سنجی، روی دکمه آزمایش در کنار برنامه رسانه خود کلیک کنید.

وضعیت MCT

وضعیت کنترل رسانه
شکل ۶. وضعیت کنترل رسانه

نمای بعدی اطلاعات دقیقی درباره MediaController MCT نشان می‌دهد، برای مثال PlaybackState، فراداده، و صف. دو دکمه در بالا سمت چپ نوارابزار وجود دارد. دکمه سمت چپ بین گزارش‌های قابل‌تجزیه و قالب‌بندی‌شده جابه‌جا می‌شود. دکمه سمت چپ، نما را بازآوری می‌کند تا جدیدترین اطلاعات را نمایش دهد.

انتخاب آزمایش

صفحه انتخاب آزمایش
شکل ۷. صفحه انتخاب آزمایش

با تند کشیدن به چپ، به نمای آزمایش‌های درستی‌سنجی می‌رسید که در آنجا می‌توانید فهرست پیمایشی آزمایش‌های دردسترس را ببینید. اگر آزمایشی از پُرسمان استفاده می‌کند، مثل آزمایش پخش از جستجو که در شکل ۷ نشان داده شده است، فیلد نوشتاری برای وارد کردن رشته پُرسمان وجود دارد.

MCT شامل آزمایش‌هایی برای کنش‌های رسانه‌ای زیر است و آزمایش‌های بیشتری به‌طور مداوم به پروژه اضافه می‌شود:

  • پخش کردن
  • پخش از «جستجو»
  • پخش از شناسه رسانه
  • پخش از URI
  • توقف موقت
  • ایست
  • رفتن به بعدی
  • رفتن به قبلی
  • رد شدن به مورد صف
  • رفتن به

نتایج آزمایش

نتیجه آزمایش موفقیت‌آمیز
شکل ۸. نتیجه آزمایش موفق

ناحیه نتایج در پایین نما در ابتدا خالی است. وقتی آزمایشی را اجرا کنید، نتایج را نشان می‌دهد. برای مثال، برای اجرای آزمایش «پخش از جستجو»، پرسمان جستجویی را در فیلد نوشتاری وارد کنید و روی اجرای آزمایش کلیک کنید. نمای‌گرفت زیر نتیجه آزمایشی موفق را نشان می‌دهد.

آزمایش برنامه Android TV

وقتی MCT را در Android TV راه‌اندازی می‌کنید، فهرستی از برنامه‌های رسانه نصب‌شده را می‌بینید. توجه داشته باشید که برنامه فقط درصورتی در این فهرست نشان داده می‌شود که سرویس مرورگر رسانه را پیاده‌سازی کند.

صفحه راه‌اندازی MCT در تلویزیون

شکل ۹. صفحه راه‌اندازی MCT در تلویزیون

با انتخاب برنامه، به صفحه آزمایش هدایت می‌شوید که در آن فهرستی از آزمایش‌های درستی‌سنجی در سمت چپ نمایش داده می‌شود.

صفحه آزمایش‌های درستی‌سنجی در تلویزیون

شکل ۱۰. صفحه آزمایش‌های درستی‌سنجی در تلویزیون

وقتی آزمایشی را اجرا می‌کنید، سمت چپ صفحه اطلاعاتی درباره MediaController انتخاب‌شده نمایش می‌دهد. برای جزئیات بیشتر، گزارش‌های MCT را در Logcat بررسی کنید.

صفحه اطلاعات آزمایشی در تلویزیون

شکل ۱۱. صفحه اطلاعات آزمایشی در تلویزیون

آزمایش‌هایی که به پُرسمان نیاز دارند با نماد صفحه‌کلید علامت‌گذاری شده‌اند. با کلیک کردن روی یکی از این آزمایش‌ها، فیلد ورودی برای پُرسمان باز می‌شود. روی Enter کلیک کنید تا آزمایش اجرا شود.

برای آسان‌تر کردن ورودی نوشتار، می‌توانید از فرمان adb نیز استفاده کنید:

adb shell input text your-query

می‌توانید از «%s» برای افزودن فاصله بین کلمات استفاده کنید. برای مثال، فرمان زیر نوشتار «سلام دنیا» را به فیلد ورودی اضافه می‌کند.

adb shell input text hello%sworld

درحال ساختن آزمایش

می‌توانید درخواست کششی با آزمایش‌های بیشتری که فکر می‌کنید مفید است ارسال کنید. برای آشنایی با نحوه ساختن آزمایش‌های جدید، به MCT GitHub Wiki مراجعه کنید و دستورالعمل‌های آزمایش درستی‌سنجی را ببینید.

برای اطلاعات بیشتر، دستورالعمل‌های همیاری را مرور کنید.

منابع بیشتر

MCT برای استفاده همراه با برنامه‌هایی است که میاناهای برنامه‌سازی کاربردی رسانه را پیاده‌سازی می‌کنند. برای نمونه‌ای از چنین برنامه‌ای، پخش‌کننده موسیقی Android جهانی را ببینید.

همیشه از رفع اشکال‌ها و بهبودها استقبال می‌شود. لطفاً دستورالعمل‌های همیاری را ببینید.