Jetpack Media3'a Giriş

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

Bu belgede, Media3 ile oynatma ve düzenleme kullanım alanlarını uygulamak için kullanılan temel API'ler tanıtılmaktadır.

Oynatma Bileşenleri

Media3, oynatma kullanım alanları için çeşitli temel bileşenler sunar. Bu bileşenleri oluşturan sınıflar, önceki Android medya kitaplıklarıyla çalıştıysanız 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şmaları nedeniyle birkaç basit şekilde 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 Uygulamayla ilgili not
Player Player, medya oynatıcı için geleneksel üst düzey özellikleri (ör. oynatma, duraklatma ve arama) tanımlayan bir arayüzdür. Media3'te Player arayüzü, 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.

Media3 ExoPlayer hakkında daha fazla bilgi edinin.

Medya oturumu

Medya oturumu, medya oynatıcıyla etkileşim kurmak için evrensel bir yöntem sunar. Bu, bir uygulamanın medya oynatmayı harici kaynaklara reklam vermesini ve harici kaynaklardan oynatma kontrolü istekleri almasını sağlar. Media3'te şunları bulabilirsiniz:

Sınıf Açıklama Uygulamayla ilgili not
MediaSession Medya oturumları, uygulamanızın bir ses veya video oynatıcıyla etkileşimde bulunmasını sağlar. Harici olarak medya oynatma reklamı yaparlar ve harici kaynaklardan oynatma komutları alırlar. Media3'te bir MediaSession, komutları yürütmek ve mevcut durumu elde etmek için Player'ye ihtiyaç duyar.
MediaSessionService MediaSessionService, arka planda oynatmayı kolaylaştırmak için uygulamanızın ana Activity'sinden ayrı bir hizmette medya oturumu ve ilişkili oynatıcısını 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 öğesinin temelindeki Player öğesine 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, MediaSessionService'ye benzer ancak içerik kitaplığınızı istemci uygulamalarına sunabilmeniz için ek API'ler içerir.
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'ya benzer şekilde, Android Auto gibi istemci uygulamaları genellikle MediaBrowser'yi uygular.

Media3 MediaSession hakkında daha fazla bilgi edinin.

Kullanıcı arayüzü bileşenleri

Media3, video izleme ve oynatmayı kontrol etme için varsayılan kullanıcı arayüzü bileşenleri sağlar.

Sınıf Açıklama Uygulamayla ilgili not
PlayerView Video ve oynatma kontrollerini göstermek için varsayılan bir View. ExoPlayer, MediaController veya diğer özel Player'lere bağlanır.
PlayerSurface Videoyu göstermek için özel bir çizimi temsil eden bir Composable. Surface Herhangi bir Player cihazına bağlanır ancak oynatma kontrolleri içermez. Yalnızca çerçevelerin oluşturulması için kullanılır ve çeşitli ContentScale türlerine göre yeniden boyutlandırılabilir. Bu ve diğer birçok composable, Compose UI yardımcı programlarında bulunabilir.

Media3 UI hakkında daha fazla bilgi

Bileşenleri düzenleme

Media3, aşağıdakiler de 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 işlemler
  • Son çıktıyı dosyaya aktarma
Sınıf Açıklama Uygulamayla ilgili not
Transformer Dönüşümleri başlatmak ve durdurmak için Transformer sınıfını kullanın. Ayrıca, devam eden bir dönüşümle ilgili ilerleme güncellemelerini kontrol etmek için de bu sınıfı kullanabilirsiniz.
Effects Effects nesnesi, bir medya öğesine uygulanacak ses ve video efektlerinden oluşan bir koleksiyondur. Dışa aktarma işlemine başlamadan önce bir medya öğesine eklenen efektleri önizlemek için ExoPlayer simgesini kullanabilirsiniz.
EditedMediaItem EditedMediaItem, işlenecek bir medya öğesini ve bu öğeye uygulanacak düzenlemeleri temsil eder.

Media3 Transformer hakkında daha fazla bilgi edinin.

Tanıtım videosu

Media3'ü geliştiren mühendislerin Media3'ü tanıttığı aşağıdaki videoyu izleyin.