Başlarken

Basit kullanım alanları için ExoPlayer kullanmaya başlamak, şu adımları uygulayın:

  1. ExoPlayer'ı projenize bağımlılık olarak ekleyin.
  2. ExoPlayer örneği oluşturun.
  3. Oynatıcıyı bir görünüme ekleyin (video çıkışı ve kullanıcı girişi için).
  4. Oyuncuyu MediaItem ile oynamaya hazırlayın.
  5. Bittiğinde oynatıcıyı bırakın.

Bu adımlar aşağıda daha ayrıntılı olarak açıklanmaktadır. Tam bir örnek için Ana demo uygulamasında PlayerActivity.

Bağımlılık olarak ExoPlayer ekleme

ExoPlayer modülleri ekleyin

AndroidX Media3'ü kullanmaya başlamanın en kolay yolu gradle eklemektir uygulamanızın build.gradle dosyasında ihtiyaç duyduğunuz kitaplıklara bağımlılıklar modülünü kullanabilirsiniz.

Örneğin, DASH oynatma desteği ve kullanıcı arayüzü bileşenleriyle ExoPlayer'a bağımlı olmak için modüllere şu şekilde bağımlılık ekleyebilirsiniz:

Kotlin

implementation("androidx.media3:media3-exoplayer:1.4.0")
implementation("androidx.media3:media3-exoplayer-dash:1.4.0")
implementation("androidx.media3:media3-ui:1.4.0")

Eski

implementation "androidx.media3:media3-exoplayer:1.4.0"
implementation "androidx.media3:media3-exoplayer-dash:1.4.0"
implementation "androidx.media3:media3-ui:1.4.0"

burada 1.4.0 tercih ettiğiniz sürümdür (en son sürüm sürüm notlarını inceleyebilirsiniz). Tüm modüller aynı sürümde olmalıdır.

AndroidX Media3 şuna bağımlı kitaplık modüllerine sahiptir: harici kitaplıklar vardır. Bazıları, Maven deposundan kullanılabilirken diğerlerinin manuel olarak oluşturulması gerekir. Kitaplıklar dizinine göz atın ve ayrıntılar için README'leri ayrı ayrı inceleyin.

Mevcut kütüphane modülleri hakkında daha fazla bilgiyi şu adreste bulabilirsiniz: Google Maven AndroidX Media sayfası.

Java 8 desteğini etkinleştirme

Henüz etkinleştirmediyseniz build.gradle için Java 8 desteğini etkinleştirmeniz gerekir. ExoPlayer'a bağlı dosyaları oluşturun. Bunun için aşağıdakini android bölümüne ekleyin:

compileOptions {
  targetCompatibility JavaVersion.VERSION_1_8
}

Multidex'i etkinleştirme

Gradle minSdkVersion değeriniz 20 veya daha düşükse şunları yapmalısınız: sırayla multidex'i etkinleştirin entegre edin.

Oynatıcıyı oluşturma

ExoPlayer.Builder kullanarak bir ExoPlayer örneği oluşturabilirsiniz. Örneğin, seçenekleri vardır. Aşağıdaki kod, örnek oluşturacağız.

Kotlin

val player = ExoPlayer.Builder(context).build()

Java

ExoPlayer player = new ExoPlayer.Builder(context).build();

İleti dizisiyle ilgili not

ExoPlayer örneklerine tek bir uygulama iş parçacığından erişilmelidir. bu işlem, uygulamanın ana iş parçacığı olmalıdır. Her bir ExoPlayer'ın kullanıcı arayüzü bileşenleri kullanılırken uygulamanın ana iş parçacığı gerekli veya IMA uzantısı vardır.

ExoPlayer örneğine erişilmesi gereken iş parçacığı açıkça erişilebilir oynatıcı oluşturulurken bir Looper iletilerek belirtilir. Looper yoksa belirtildiğinde, oynatıcının oluşturulduğu ileti dizisinin Looper öğesi veya söz konusu ileti dizisi bir Looper içermiyorsa Looper ana iş parçacığı kullanılır. Her durumda, Looper Oynatıcının erişebilmesi gereken bu öğe, Player.getApplicationLooper.

ExoPlayer'ın iş parçacığı modeli hakkında daha fazla bilgi için bkz. "İleti dizisi modeli" bölümünde bulabilirsiniz.

Oynatıcıyı bir görünüme ekleme

ExoPlayer kitaplığı, medya içerikleri için önceden oluşturulmuş bir dizi kullanıcı arayüzü bileşeni sağlar. oynatmaya devam edebilirsiniz. Bunlar, bir anahtar kelimeyi içeren PlayerView Videonun üzerine eklenen PlayerControlView, SubtitleView ve Surface oluşturulur. PlayerView, uygulamanızın düzen XML dosyasına eklenebilir. Örneğin, oynatıcıyı görünüme bağlamak için:

Kotlin

// Bind the player to the view.
playerView.player = player

Java

// Bind the player to the view.
playerView.setPlayer(player);

Ayrıca, PlayerControlView öğesini bağımsız bir bileşen olarak da kullanabilirsiniz. kullanım alanları açısından oldukça faydalıdır.

ExoPlayer'ın önceden oluşturulmuş kullanıcı arayüzü bileşenlerinin kullanımı isteğe bağlıdır. Video uygulamaları için kendi kullanıcı arayüzünü uygulayan SurfaceView, TextureView ve SurfaceHolder veya Surface, ExoPlayer'ınkiler kullanılarak ayarlanabilir setVideoSurfaceView, setVideoTextureView, setVideoSurfaceHolder ve setVideoSurface yöntemi yer alır. ExoPlayer'ın addTextOutput yöntemi oynatma sırasında oluşturulması gereken altyazıları almak için kullanılır.

Oynatma listesini doldurma ve oynatıcıyı hazırlama

ExoPlayer'da her medya parçası bir MediaItem ile temsil edilir. Oynatmak için buna karşılık gelen bir MediaItem oluşturmanız, oynatıcıyı hazırlayın, oynatıcıyı hazırlayın ve oynatmayı başlatmak için play yöntemini çağırın:

Kotlin

// Build the media item.
val mediaItem = MediaItem.fromUri(videoUri)
// Set the media item to be played.
player.setMediaItem(mediaItem)
// Prepare the player.
player.prepare()
// Start the playback.
player.play()

Java

// Build the media item.
MediaItem mediaItem = MediaItem.fromUri(videoUri);
// Set the media item to be played.
player.setMediaItem(mediaItem);
// Prepare the player.
player.prepare();
// Start the playback.
player.play();

ExoPlayer, oynatma listelerini doğrudan desteklediğinden oynatıcıyı hazırlamak mümkündür medya öğelerinin birbiri ardına oynatılmasını sağlar:

Kotlin

// Build the media items.
val firstItem = MediaItem.fromUri(firstVideoUri)
val secondItem = MediaItem.fromUri(secondVideoUri)
// Add the media items to be played.
player.addMediaItem(firstItem)
player.addMediaItem(secondItem)
// Prepare the player.
player.prepare()
// Start the playback.
player.play()

Java

// Build the media items.
MediaItem firstItem = MediaItem.fromUri(firstVideoUri);
MediaItem secondItem = MediaItem.fromUri(secondVideoUri);
// Add the media items to be played.
player.addMediaItem(firstItem);
player.addMediaItem(secondItem);
// Prepare the player.
player.prepare();
// Start the playback.
player.play();

Oynatma listesi, oynatma sırasında hazırlanması gerekmeden güncellenebilir. oynatıcıya devam eder. Oynatma listesini doldurma ve değiştirme hakkında daha fazla bilgi için Oynatma listeleri sayfası. Bu durumda kullanabileceğiniz farklı seçenekler hakkında altyazı dosyası ekleme gibi medya öğeleri oluşturmak Medya öğeleri sayfası.

Oynatıcıyı kontrol etme

Oynatıcı hazırlandıktan sonra oynatma, çağrı yöntemleriyle kontrol edilebilir. gerekir. En sık kullanılan yöntemlerden bazıları şunlardır:

  • play ve pause, oynatmayı başlatıp duraklatır.
  • seekTo, medya içinde sarmaya olanak tanır.
  • hasPrevious, hasNext, previous ve next, gezinmeye izin verir oynatma listesi.
  • setRepeatMode, medyanın döngü halinde olup olmadığını ve nasıl döngüye alınacağını kontrol eder.
  • setShuffleModeEnabled, oynatma listesi karıştırmayı kontrol eder.
  • setPlaybackParameters, oynatma hızını ve ses perdesini ayarlar.

Oyuncu bir PlayerView veya PlayerControlView hesabına bağlıysa bu bileşenlerle kullanıcı etkileşimi, çağrılır.

Oynatıcıyı serbest bırakın

Oynatıcıyı artık ihtiyaç duymadığında serbest bırakmak önemlidir. Video kod çözücüler gibi sınırlı kaynakları diğer uygulamaların kullanımına sunma. Bu ExoPlayer.release numaralı telefonu arayarak bu işlemi yapabilirsiniz.