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 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 birMediaSessionCompatveya Media3MediaSessionüzerine oluşturulmuş medya oturumu uygulamanızı, eski birMediaControllerCompataracı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 birMediaSessionCompatveya Media3MediaSessionüzerine oluşturulan medya oturumu uygulamanızı, harici bir uygulama tarafından Media3MediaControlleraracı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'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.
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:
- Ses odağı açılır menüsünü kullanarak üç süre ipucundan birini seçin:
AUDIOFOCUS_GAIN,AUDIOFOCUS_GAIN_TRANSIENTveyaAUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK. - Odaklanma isteğinde bulunmak için düğmeye basın.
- Odağı kaldırmak için düğmeye tekrar basın.
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
Doğrulama testlerine erişmek için medya uygulamanızın yanındaki Test düğmesini tıklayın.
MCT 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
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ı
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.
Bir uygulama seçtiğinizde test ekranına yönlendirilirsiniz. Bu ekranda, sağ tarafta doğrulama testlerinin listesi gösterilir.
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.
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.