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.
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:
Faydalı bağlantılar
- Medya Geliştirici Merkezi
ExoPlayerdoküman- Geçiş rehberi
- GitHub'da AndroidX Media3
- Media3 medya oturumu örnek uygulaması
- Universal Android Music Player örnek uygulaması