Basit kullanım alanları için ExoPlayer
kullanmaya başlamak,
şu adımları uygulayın:
- ExoPlayer'ı projenize bağımlılık olarak ekleyin.
ExoPlayer
örneği oluşturun.- Oynatıcıyı bir görünüme ekleyin (video çıkışı ve kullanıcı girişi için).
- Oyuncuyu
MediaItem
ile oynamaya hazırlayın. - 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
vepause
, oynatmayı başlatıp duraklatır.seekTo
, medya içinde sarmaya olanak tanır.hasPrevious
,hasNext
,previous
venext
, 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.