Jetpack Media3'a Giriş

Jetpack Media3, Android uygulamalarının zengin ses ve görüntü deneyimleri sunmasını sağlayan medya kitaplıklarının yeni adresidir. Media3, parçalanmadan kaynaklanan karmaşıklığı ortadan kaldırmak için cihaz özelliklerine dayalı güçlü özelleştirme, güvenilirlik ve optimizasyonlar içeren basit bir mimari sunar.

Bu belgede, Media3 ile oynatma ve düzenleme kullanım alanlarını uygulamak için önemli API'lere giriş yapılmıştır.

Oynatma Bileşenleri

Media3, oynatma kullanım alanları için birkaç önemli bileşen sunar. Daha önce 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şmaları sayesinde 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ı oynatmasına olanak tanıyan bir bileşendir. Media3'te şunları bulabilirsiniz:

Sınıf Açıklama Uygulama notu
Player Player, bir medya oynatıcı için oynatma, duraklatma ve arama gibi geleneksel üst düzey özellikleri 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

Medya oturumu

Medya oturumu, medya oynatıcıyla etkileşim kurmanın evrensel bir yolunu sunar. Bu sayede uygulama, medya oynatmayı harici kaynaklara bildirebilir 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şim kurmasını sağlar. Medya oynatmayı harici olarak bildirir ve harici kaynaklardan oynatma komutları alırlar. Media3'te, komutları yürütmek ve mevcut durumu almak için MediaSession, Player gerektirir.
MediaSessionService MediaSessionService, arka planda oynatmayı kolaylaştırmak için medya oturumunu ve ilişkili oynatıcıyı uygulamanızın ana Activity öğesinden 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'nin temel Player öğesine gönderilir. MediaController sınıfı, Player arayüzünü uygular ancak bir yöntem çağrılırken 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 ile benzerdir 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 oynatılacak öğeleri seçmesine olanak tanır. MediaBrowser sınıfı hem MediaController hem de Player arayüzlerini uygular. MediaController gibi, Android Auto gibi istemci uygulamaları da genellikle MediaBrowser uygular.

Media3 MediaSession hakkında daha fazla bilgi

Kullanıcı arayüzü bileşenleri

Media3, video izlemek ve oynatmayı 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österen varsayılan bir View. ExoPlayer, MediaController veya başka bir özel Player ile bağlantı kurar.
PlayerSurface Videoyu göstermek için özel bir çizimi temsil eden Surface bir Composable. Tüm Player cihazlara bağlanır ancak oynatma kontrolleri içermez. Yalnızca kareleri oluşturmak 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 kullanıcı arayüzü yardımcı programlarında bulabilirsiniz.

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

Bileşenleri düzenleme

Media3, medya düzenleme kullanım alanları için Transformer API'lerini içerir. Bu kullanım alanları arasında şunlar yer alır:

  • Filtre ve efekt ekleme gibi ses ve video işleme özellikleri
  • HDR video ve ağır çekim video gibi özel formatları işleme
  • Birleştirme (ör. birden fazla giriş dosyasını birleştirme)
  • Nihai çıktıyı bir dosyaya aktarma
Sınıf Açıklama Uygulama notu
Transformer Dönüşümleri başlatmak ve durdurmak, ayrıca çalışan bir dönüşümle ilgili ilerleme güncellemelerini kontrol etmek için Transformer sınıfını kullanın.
Effects Effects nesnesi, bir medya öğesine uygulanacak ses ve video efektlerinin bir koleksiyonudur. Dışa aktarma işlemine başlamadan önce bir medya öğesine eklenen efektleri önizlemek için ExoPlayer kullanabilirsiniz.
EditedMediaItem EditedMediaItem, işlenecek bir medya öğesini ve bu öğeye uygulanacak düzenlemeleri temsil eder.

Media3 Transformer hakkında daha fazla bilgi

Tanıtım videosu

Media3'ü geliştiren mühendislerin hazırladığı bu tanıtım videosunu izleyin: