Medya denetleyici test uygulamasını kullanma

Android telefonlarda, arabalarda, TV'lerde ve kulaklıklarda Google Asistan ile sesli olarak etkileşim kuran medya uygulamaları, Android medya oturumu API'leri tarafından desteklenir ve medya işlemlerini kullanır. Medya işlemi yaşam döngüsünü takip etmek zor olabilir. Aramadan oynatma isteği gibi basit bir işlemde bile, basitleştirilmiş zaman çizelgesinde gösterildiği gibi, bir şeylerin ters gidebileceği birçok ara adım vardır:

Medya İşlemi Yaşam Döngüsü

Şekil 1. Medya İşlemi Yaşam Döngüsü

Medya Kumandası Testi (MCT) uygulaması, Android'de medya oynatmanın inceliklerini test etmenize olanak tanır ve medya oturumu uygulamanızı doğrulamanıza yardımcı olur.

Medya Kumandası Test uygulamasının iki sürümü vardır:

  • İstemci uygulaması, eski MediaControllerCompat üzerinde uygulanır. Bu sayede, eski bir MediaSessionCompat veya Media3 MediaSession üzerine oluşturulmuş medya oturumu uygulamanızı, eski bir MediaControllerCompat aracılığıyla harici bir uygulama tarafından erişildiğinde test edebilirsiniz. Eski sürümün kaynak kodunu GitHub'da bulabilirsiniz.
  • İstemci uygulaması, en son Media3 sürümü üzerine uygulanır MediaController. Bu sayede, eski bir MediaSessionCompat veya Media3 MediaSession üzerine oluşturulan medya oturumu uygulamanızı, harici bir uygulama tarafından Media3 MediaController aracılığıyla erişildiğinde test edebilirsiniz. Media3 sürümünün kaynak kodunu GitHub'da bulabilirsiniz.

MCT, uygulamanızın MediaController ile ilgili bilgileri (ör. PlaybackState ve meta verileri) gösterir ve uygulamalar arası medya kontrollerini test etmek için kullanılabilir. MCT, kalite güvencesi testinizi otomatikleştirmenize olanak tanıyan bir doğrulama testi çerçevesi de içerir.

MCT'yi kullanmak için uygulamanızda bir medya tarayıcı hizmeti bulunmalı ve MCT'nin bu hizmete bağlanmasına izin vermelisiniz. Daha fazla bilgi için Medya tarayıcı hizmeti oluşturma başlıklı makaleyi inceleyin.

MCT'yi başlatma

MCT Başlatma Sayfası
Şekil 2. MCT Lansman Sayfası

MCT'yi başlattığınızda iki liste görürsünüz:

  • Etkin MediaSession'lar: MCT'yi başlattığınızda bu liste başlangıçta boştur ve "Medya uygulaması bulunamadı. Etkin medya oturumlarını taramak için bildirim dinleyici izni gerekiyor." İzinler ekranına gidip MCT iznini etkinleştirmek için Ayarlar'ı tıklayın.
  • MediaBrowserService Uygulamaları: Bu listede, medya tarayıcı hizmeti uygulayan uygulamalar gösterilir. Bir medya tarayıcı hizmeti uyguladıysanız uygulamanız bu listede görünür ancak MCT'yi yalnızca uygulamanızı tüm bağlantıları kabul edecek şekilde yapılandırdıysanız veya MCT'yi izin verilenler listesine eklediyseniz kullanabilirsiniz. Daha fazla bilgi için onGetRoot() ile istemci bağlantılarını kontrol etme başlıklı makaleyi inceleyin.

Telefon uygulamasını manuel olarak test etme

MCT'nin uygulamanızın medya tarayıcı hizmetine bağlanmasına izin verdiyseniz uygulamanız, medya tarayıcı hizmeti listesi uygulamaları listesinde görünür. Uygulamayı orada bulup Kontrol'ü tıklayarak uygulamanızı arka planda başlatın.

Aksi takdirde, önce uygulamanızı arka planda kendiniz başlatmanız, ardından etkin medya oturumları listesinde göründüğünde Kontrol et'i tıklamanız gerekir.

Test hazırlığı ve oynama

MCT, uygulamanızı kontrol etmeye başladığında uygulamanın mevcut oturum meta verilerini gösterir: seçili medya ve oturumun işlemeye hazır olduğu işlemler.

Kontrol Sayfası
Şekil 3. Kontrol Sayfası

MCT kontrolleri sayfasının üst kısmında Arama, URI, Medya Kimliği veya Yok'u seçebileceğiniz bir açılır menü bulunur. Bu seçeneklerden birini belirlerseniz Arama, URI veya Medya Kimliği ile ilişkili giriş verilerini belirtebileceğiniz bir metin alanı da gösterilir.

Metin alanının hemen altındaki Prepare ve Play düğmeleri, seçtiğiniz işleme bağlı olarak uygun çağrıları (onPrepare(), onPrepareFromSearch(), onPrepareFromUri(), onPrepareFromMediaId(), onPlay(), onPlayFromSearch(), onPlayFromUri(), onPlayFromMediaId()) gerçekleştirir.

Ses odağını test etme

Düzgün çalışan bir medya uygulaması, ses odağını yönetebilmelidir. Uygulamanızla birlikte başka bir ses uygulamasını çalıştırarak ses odağını test edebilirsiniz. MCT kontrolleri sayfasında, ses odağı isteyen ve bırakan bir düğme bulunur.

Ses odağını test etmek için aşağıdaki adımları uygulayın:

  1. Ses odağı açılır menüsünü kullanarak üç süre ipucundan birini seçin: AUDIOFOCUS_GAIN, AUDIOFOCUS_GAIN_TRANSIENT veya AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK.
  2. Odaklanma isteğinde bulunmak için düğmeye basın.
  3. Odağı kaldırmak için düğmeye tekrar basın.

Taşıma kontrollerini test etme

Taşıma Kontrollerini Test Etme
Şekil 4. Taşıma kontrollerini test etme

MCT'nin kullanıcı arayüzü görünümünü görüntülemek için sola kaydırın. Bu görünümde standart medya kumandası taşıma düğmeleri bulunur ve oturumun program resmi ile verileri gösterilir. Devre dışı bırakılan taşıma düğmeleri turuncu renkle daire içine alınmıştır. Diğer tümü etkindir.

Oynatıcınızı taşıma düğmelerini kullanarak test edin. Kontrol düğmelerinin durumu beklendiği gibi değişmelidir. Örneğin, OYNAT düğmesine bastığınızda bu düğme devre dışı kalmalı, DURAKLAT ve DURDUR düğmeleri etkinleştirilmelidir.

İsteğe bağlı işlemleri gösteren bir görünüm için tekrar sola kaydırın. Her işlemin etkin olup olmadığını gösteren bir kontrol vardır. Etkinse tıklayarak işlemi gerçekleştirebilirsiniz.

Medya tarayıcı hizmeti olan uygulamalar listesinden bağlandıysanız uygulamanızın içerik hiyerarşisinde yukarı ve aşağı gitmenizi veya içerik ağacında arama yapmanızı sağlayan görünümler için iki kez daha sola kaydırabilirsiniz.

Video uygulamasını manuel olarak test etme

Video uygulaması denetleyicilerini test etmek için bölünmüş ekran modunu kullanın. Öncelikle video uygulamanızı bir pencerede açın, ardından MCT'yi bölünmüş ekran modunda açın.

Doğrulama testleri yapılıyor

Doğrulama testi çerçevesi, medya uygulamanızın oynatma isteğine doğru şekilde yanıt verdiğinden emin olmak için çalıştırabileceğiniz tek tıklamayla testler sunar.

Telefon uygulamasını test etme

Test Düğmesi
Şekil 5. Test Düğmesi

Doğrulama testlerine erişmek için medya uygulamanızın yanındaki Test düğmesini tıklayın.

MCT durumu

Medya Kontrolü Durumu
Şekil 6. Medya Kontrolü Durumu

Sonraki görünümde, MCT'nin MediaController ile ilgili ayrıntılı bilgiler (ör. PlaybackState, meta veriler ve sıra) gösterilir. Araç çubuğunun sağ üst kısmında iki düğme bulunur. Soldaki düğme, ayrıştırılabilir ve biçimlendirilmiş günlükler arasında geçiş yapar. Sağdaki düğme, görünümü yenileyerek en güncel bilgileri gösterir.

Test seçme

Test Seçimi Sayfası
Şekil 7. Test Seçimi Sayfası

Sola kaydırdığınızda, mevcut testlerin kaydırılabilir bir listesini görebileceğiniz doğrulama testleri görünümüne ulaşırsınız. Testte bir sorgu kullanılıyorsa (ör. Şekil 7'de gösterilen aramadan oynatma testi) sorgu dizesini girmek için bir metin alanı bulunur.

MCT, aşağıdaki medya işlemleri için testler içerir ve projeye sürekli olarak daha fazla test eklenir:

  • Oynat
  • Arama'dan oynatma
  • Medya kimliğinden oynat
  • URI'den oynat
  • Duraklat
  • Durdur
  • Sonrakine Atla
  • Öncekine Atla
  • Sıradaki öğeye atla
  • Şuraya sar:

Test sonuçları

Başarılı Bir Test Sonucu
Şekil 8. Başarılı Bir Test Sonucu

Görünümün alt kısmındaki sonuçlar alanı başlangıçta boştur. Test çalıştırdığınızda sonuçları gösterir. Örneğin, aramadan oynatma testini çalıştırmak için metin alanına bir arama sorgusu girip Testi Çalıştır'ı tıklayın. Aşağıdaki ekran görüntüsünde başarılı bir test sonucu gösterilmektedir.

Android TV uygulamasını test etme

Android TV'de MCT'yi başlattığınızda yüklü medya uygulamalarının listesini görürsünüz. Bir uygulamanın bu listede görünmesi için medya tarayıcı hizmeti uygulaması gerektiğini unutmayın.

TV'de MCT Başlatma Sayfası

Şekil 9. TV'de MCT Başlatma Sayfası

Bir uygulama seçtiğinizde test ekranına yönlendirilirsiniz. Bu ekranda, sağ tarafta doğrulama testlerinin listesi gösterilir.

TV'deki Doğrulama Testleri Sayfası

Şekil 10. TV'de Doğrulama Testleri Sayfası

Test çalıştırdığınızda ekranın sol tarafında, seçilen MediaController ile ilgili bilgiler gösterilir. Daha fazla bilgi için Logcat'teki MCT günlüklerini inceleyin.

TV'deki Test Bilgileri Sayfası

Şekil 11. TV'de Test Bilgileri Sayfası

Sorgu gerektiren testler klavye simgesiyle işaretlenir. Bu testlerden birini tıkladığınızda sorgu için bir giriş alanı açılır. Testi çalıştırmak için Enter tuşuna basın.

Metin girişini kolaylaştırmak için adb komutunu da kullanabilirsiniz:

adb shell input text your-query

Kelimeler arasına boşluk eklemek için "%s" kullanabilirsiniz. Örneğin, aşağıdaki komut, giriş alanına "hello world" metnini ekler.

adb shell input text hello%sworld

Test oluşturma

Faydalı olacağını düşündüğünüz daha fazla test içeren bir pull isteği gönderebilirsiniz. Yeni testlerin nasıl oluşturulacağını öğrenmek için MCT GitHub Wiki sayfasını ziyaret edin ve doğrulama testi talimatlarını inceleyin.

Daha fazla bilgi için katkıda bulunma talimatlarını inceleyin.

Ek kaynaklar

MCT, medya API'lerini uygulayan uygulamalarla birlikte kullanılmak üzere tasarlanmıştır. Bu tür bir uygulama örneği için Universal Android Music Player'a bakın.

Hata düzeltmeleri ve iyileştirmeler her zaman memnuniyetle karşılanır. Lütfen katkıda bulunma talimatlarını inceleyin.