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 Playerarayüzü,MediaSessionveMediaControllergibi çeşitli bileşenler tarafından uygulanan veya kullanılan ortak bir API'dir. | 
| ExoPlayer | ExoPlayer, Media3'tekiPlayerarayü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çinPlayer'ye ihtiyaç duyar. | 
| MediaSessionService | MediaSessionService, arka planda oynatmayı kolaylaştırmak için uygulamanızın anaActivity'sinden ayrı bir hizmette medya oturumu ve ilişkili oynatıcısını tutar. | |
| MediaController | MediaControllersı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şkiliMediaSessionöğesinin temelindekiPlayeröğesine gönderilir. | MediaControllersınıfı,Playerarayüzünü uygular ancak bir yöntem çağrıldığındaMediaController, bağlıMediaSession'ye gönderilen komutu gönderir. Google Asistan gibi istemci uygulamaları, bağlı bir oturumda oynatmayı kontrol etmek içinMediaControllerkullanabilir. | 
| MediaLibraryService | MediaLibraryService,MediaSessionService'ye benzer ancak içerik kitaplığınızı istemci uygulamalarına sunabilmeniz için ek API'ler içerir. | |
| MediaBrowser | MediaBrowsersı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. | MediaBrowsersınıfı hemMediaControllerhem dePlayerarayüzlerini uygular.MediaController'ya benzer şekilde, Android Auto gibi istemci uygulamaları genellikleMediaBrowser'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,MediaControllerveya diğer özelPlayer'lere bağlanır. | 
| PlayerSurface | Videoyu göstermek için özel bir çizimi temsil eden bir Composable. Surface | Herhangi bir Playercihazına bağlanır ancak oynatma kontrolleri içermez.
      Yalnızca çerçevelerin oluşturulması için kullanılır ve çeşitli
      
      ContentScaletü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 Transformersı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 | Effectsnesnesi, 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 ExoPlayersimgesini 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
- ExoPlayerdokümanlar
- Taşıma rehberi
- GitHub'da AndroidX Media3
- Media3 medya oturumu örnek uygulaması
- Evrensel Android Müzik Çalar örnek uygulaması
