Jetpack Media3'a Giriş

Jetpack Media3, Android uygulamalarının zengin ses ve görsel deneyimler göstermesine olanak tanıyan medya kitaplıklarının yeni adresidir. Media3, parçalanmayla birlikte gelen karmaşıklığı ortadan kaldırmak için güçlü özelleştirme, güvenilirlik ve cihaz özelliklerine dayalı optimizasyonlara sahip basit bir mimari sunar.

Bu belgede, Media3 ile oynatma ve düzenleme kullanım alanlarını uygulamaya yönelik temel API'lere giriş sağlanmaktadır.

Oynatma Bileşenleri

Media3, oynatma kullanım alanları için çeşitli temel bileşenler 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üz ve sınıf paylaşmaları sayesinde birbirlerine birkaç basit şekilde bağlanır.
Şekil 1: Medya uygulaması bileşenleri

Medya oynatıcı

Medya oynatıcı, uygulamanızın medya dosyalarının oynatılmasını sağlayan bir bileşenidir. Media3'te şunları bulabilirsiniz:

Sınıf Description Uygulama notu
Player Player, medya oynatıcılar için oynatma, duraklatma ve arama gibi ü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 yaygın 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şimde bulunmak için evrensel bir yol sağlar. Bu, bir uygulamanın harici kaynaklara medya oynatmanın reklamını yapmasına ve harici kaynaklardan oynatma kontrolü istekleri almasına olanak tanır. Media3'te şunları bulabilirsiniz:

Sınıf Description Uygulama notu
MediaSession Medya oturumları, uygulamanızın ses veya video oynatıcıyla etkileşim kurmasını sağlar. Harici olarak medya oynatmanın reklamını yaparlar ve harici kaynaklardan oynatma komutları alırlar. Media3'te bir MediaSession, komutları yürütmek ve mevcut durumu almak için bir Player gerektirir.
MediaSessionService MediaSessionService, arka planda oynatmayı kolaylaştırmak için bir medya oturumu ve bununla ilişkili oynatıcıyı uygulamanızın ana Activity hizmetinden ayrı bir hizmette düzenler.
MediaController MediaController sınıfı genellikle uygulamanızın dışından (örneğin, diğer uygulamalardan veya sistemin kendisinden) komut göndermek için kullanılır. Komutlar, ilişkilendirilmiş MediaSession öğesinin altındaki Player öğesine gönderilir. MediaController sınıfı Player arayüzünü uygular ancak bir yöntem çağrılırken komut, bağlı MediaSession öğesine gönderilir. Google Asistan gibi istemci uygulamaları, bağlı bir oturumdaki oynatmayı kontrol etmek için MediaController özelliğini kullanabilir.
MediaLibraryService MediaLibraryService, MediaSessionService ile benzerdir. Tek fark, içerik kitaplığınızı istemci uygulamalarına sunabilmeniz için ek API'ler içermesidir.
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'a benzer şekilde, Android Auto gibi istemci uygulamaları genellikle MediaBrowser kodunu uygular.

Media3 MediaSession hakkında daha fazla bilgi edinin.

Kullanıcı arayüzü bileşenleri

Media3, videoyu görüntülemek ve oynatmayı kontrol etmek için varsayılan kullanıcı arayüzü bileşenleri sunar.

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

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

Bileşenleri düzenleme

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

  • Ses ve video işleme (ör. filtre ve efekt ekleme)
  • HDR video ve ağır çekim video gibi özel biçimleri işleme
  • Birden fazla giriş dosyasını birleştirme gibi bileşim
  • Nihai çıktıyı dosyaya aktarma
Sınıf Description Uygulama notu
Transformer Dönüşümleri başlatıp durdurmak ve çalışan bir dönüşümle ilgili ilerleme durumu güncellemelerini kontrol etmek için Transformer sınıfını kullanın.
Effects Effects nesnesi, bir medya öğesine uygulanacak ses ve video efektleri koleksiyonudur.
EditedMediaItem EditedMediaItem, işlenecek medya öğesini ve buna uygulanacak düzenlemeleri temsil eder. Dışa aktarma işlemine başlamadan önce medya öğesine eklenen efektleri önizlemek için ExoPlayer kullanabilirsiniz.

Media3 Transformer hakkında daha fazla bilgi

Tanıtım videosu

Media3'ü oluşturan mühendislerden gelen, Media3'ü tanıtan aşağıdaki videoyu izleyin.