Jetpack Media3'a Giriş

Jetpack Media3, Android uygulamalarının zengin işitsel ve görsel deneyimler sunmasını sağlayan medya kitaplıklarının yeni adresidir. Media3, cihaz özelliklerine dayalı güçlü özelleştirme, güvenilirlik ve optimizasyonlarla parçalanmanın getirdiği karmaşıklığı ortadan kaldırmak için basit bir mimari sunar.

Bu belgede, Media3 ile oynatma ve düzenleme kullanım alanlarını uygulamak için temel API'ler hakkında bilgi verilmektedir.

Oynatma Bileşenleri

Media3, oynatma kullanım alanları için birkaç temel bileşen sunar. Önceki Android medya kitaplıklarıyla çalıştıysanız bu bileşenleri oluşturan sınıflar size tanıdık gelecektir.

Aşağıdaki şemada, bu bileşenlerin tipik bir uygulamada nasıl bir araya geldiği gösterilmektedir.

Media3 kullanan bir medya uygulamasının farklı bileşenleri, arayüzleri ve sınıfları paylaştıkları için birkaç basit yöntemle birbirine bağlanır.
Şekil 1: Medya uygulaması bileşenleri

Medya oynatıcı

Medya oynatıcı, uygulamanızın medya dosyalarının oynatılmasına olanak tanıyan bir bileşenidir. Media3'te şunları bulabilirsiniz:

Sınıf Açıklama Uygulama notu
Player Player, oynatma, duraklatma ve arama gibi medya oynatıcıya ait geleneksel üst düzey özellikleri tanımlayan bir arayüzdür. Media3'te Player arayüzü, örneğin MediaSession ve MediaController gibi çeşitli bileşenler tarafından uygulanan veya kullanılan ortak bir API'dir.
ExoPlayer ExoPlayer, Media3'teki Player arayüzünün varsayılan uygulamasıdır.

Media3ExoPlayer hakkında daha fazla bilgi edinin.

Medya oturumu

Medya oturumu, medya oynatıcıyla etkileşime geçmenin evrensel bir yolunu sunar. Bu sayede uygulama, medya oynatmanın reklamını harici kaynaklara yapabilir ve harici kaynaklardan oynatma kontrolü istekleri alabilir. Media3'te şunları bulabilirsiniz:

Sınıf Açıklama Uygulama notu
MediaSession Medya oturumları, uygulamanızın bir ses veya video oynatıcıyla etkileşime girmesini sağlar. Medya oynatma işleminin reklamını harici olarak yapar ve oynatma komutlarını harici kaynaklardan alır. Media3'te, MediaSession'ün komutları yürütmek ve mevcut durumu elde etmek için Player'e ihtiyacı vardır.
MediaSessionService MediaSessionService, arka planda oynatmayı kolaylaştırmak için bir medya oturumunu ve ilişkili oynatıcıyı uygulamanızın ana Activity'ından ayrı bir hizmette tutar.
MediaController MediaController sınıfı genellikle uygulamanızın dışından (ör. diğer uygulamalardan veya sistemin kendisinden) komut göndermek için kullanılır. Komutlar, ilişkili MediaSession'ın temel Player'ine gönderilir. MediaController sınıfı Player arayüzünü uygular ancak bir yöntem çağrıldığında MediaController, bağlı MediaSession'ye gönderilen komutu gönderir. Google Asistan gibi istemci uygulamaları, bağlı bir oturumda oynatmayı kontrol etmek için MediaController'ü kullanabilir.
MediaLibraryService MediaLibraryService, içerik kitaplığınızı istemci uygulamalarına sunabilmeniz için ek API'ler içermesi dışında MediaSessionService'ye benzer.
MediaBrowser MediaBrowser sınıfı, kullanıcının bir medya uygulamasının içerik kitaplığında gezinmesine ve hangi öğelerin oynatılacağını seçmesine olanak tanır. MediaBrowser sınıfı hem MediaController hem de Player arayüzlerini uygular. MediaController'ye benzer şekilde, Android Auto gibi istemci uygulamaları genellikle MediaBrowser'yi uygular.

Media3MediaSession hakkında daha fazla bilgi edinin.

Kullanıcı arayüzü bileşenleri

Media3, video görüntüleme ve oynatma işlemini kontrol etmek için varsayılan kullanıcı arayüzü bileşenleri sağlar.

Sınıf Açıklama Uygulama notu
PlayerView Video ve oynatma kontrollerini göstermek için varsayılan View. ExoPlayer, MediaController veya başka bir özel Player'ye bağlanır.

Media3 kullanıcı arayüzü hakkında daha fazla bilgi edinin.

Bileşenleri düzenleme

Media3, aşağıdakiler dahil olmak üzere medya düzenleme kullanım alanları için Transformer API'lerini içerir:

  • Filtre ve efekt ekleme gibi ses ve video işleme
  • HDR video ve ağır çekim video gibi özel biçimleri işleme
  • Birden fazla giriş dosyasını birleştirme gibi derleme
  • Nihai çıkışı bir dosyaya aktarma
Sınıf Açıklama Uygulama notu
Transformer Dönüşümleri başlatmak ve durdurmak ve çalışan bir dönüşümdeki ilerleme güncellemelerini kontrol etmek için Transformer sınıfını kullanın.
Effects Effects nesnesi, bir medya öğesine uygulanacak ses ve video efektlerinden oluşan bir koleksiyondur.
EditedMediaItem EditedMediaItem, işlenecek bir medya öğesini ve bu öğeye uygulanacak düzenlemeleri temsil eder. Dışa aktarma işlemini başlatmadan önce bir medya öğesine eklenen efektleri önizlemek için ExoPlayer simgesini kullanabilirsiniz.

Media3 Transformer hakkında daha fazla bilgi edinin.

Tanıtım videosu

Media3'ü geliştiren mühendislerin Media3'ü tanıttığı videoyu aşağıda bulabilirsiniz.