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.

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.
Faydalı bağlantı
- Medya Geliştirici Merkezi
ExoPlayer
dokümanlar- Taşıma rehberi
- GitHub'da AndroidX Media3
- Media3 medya oturumu örnek uygulaması
- Evrensel Android Müzik Çalar örnek uygulaması