Görünümlere dayalı kullanıcı arayüzünü kullanmaya başlama

Bağımlılığı ekleme

Kotlin

implementation("androidx.media3:media3-ui:1.7.1")

Groovy

implementation "androidx.media3:media3-ui:1.7.1"

PlayerView

En önemli bileşen, medya oynatma görünümü olan PlayerView'dir. PlayerView, oynatma sırasında video, resim, altyazı ve albüm kapağının yanı sıra oynatma kontrollerini de gösterir.

PlayerView, setPlayer() yöntemini kullanarak Player örneklerini ekleyip ayırabilir (null ileterek).

PlayerView, hem video hem de resim ve ses oynatma için kullanılabilir. Video oynatma sırasında video ve altyazıları, resim oynatma sırasında bit eşlemleri oluşturur ve ses dosyalarına meta veri olarak eklenen albüm kapaklarını gösterebilir. Bu bileşeni, diğer kullanıcı arayüzü bileşenleri gibi düzen dosyalarınıza ekleyebilirsiniz. Örneğin, PlayerView aşağıdaki XML ile birlikte kullanılabilir:

<androidx.media3.ui.PlayerView
    android:id="@+id/player_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:show_buffering="when_playing"
    app:show_shuffle_button="true"/>

Yukarıdaki snippet, PlayerView öğesinin çeşitli özellikler sağladığını gösterir. Bu özellikler, görünümün davranışını ve görünümünü özelleştirmek için kullanılabilir. Bu özelliklerin çoğunun, görünümü çalışma zamanında özelleştirmek için kullanılabilecek ilgili ayarlayıcı yöntemleri vardır. PlayerView belgelerinde bu özellikler ve ayarlayıcı yöntemleri daha ayrıntılı olarak listelenir.

Daha rahat bir kullanıcı deneyimi için ExoPlayer kullanıyorsanız keepScreenOn Android özelliğini eklemeyi veya uyandırma kilidi ayarlamayı düşünebilirsiniz. Cihazın uyanık kalmasına neden olan diğer işlemleri arka plan çalışması sayfalarında inceleyebilirsiniz.

android:keepScreenOn="true"

Görünüm, düzen dosyasında tanımlandıktan sonra etkinliğin onCreate yönteminde aranabilir:

Kotlin

override fun onCreate(savedInstanceState: Bundle?) {
  super.onCreate(savedInstanceState)
  // ...
  playerView = findViewById(R.id.player_view)
}

Java

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  // ...
  playerView = findViewById(R.id.player_view);
}

Bir oynatıcı başlatıldıktan sonra setPlayer çağrılarak görünüme eklenebilir:

Kotlin

// Instantiate the player.
val player = ExoPlayer.Builder(context).build()
// Attach player to the view.
playerView.player = player
// Set the media item to be played.
player.setMediaItem(mediaItem)
// Prepare the player.
player.prepare()

Java

// Instantiate the player.
player = new ExoPlayer.Builder(context).build();
// Attach player to the view.
playerView.setPlayer(player);
// Set the media item to be played.
player.setMediaItem(mediaItem);
// Prepare the player.
player.prepare();

PlayerControlView

PlayerControlView, oynatmayı kontrol etmek için ilerleme çubuğunu ve düğmeleri içeren PlayerView alt görünümlerinden biridir. PlayerControlView'nın PlayerView dışında bağımsız bir bileşen olarak kullanılmasının amaçlanmadığını unutmayın. PlayerView üzerinde özellikler ayarlayarak (PlayerControlView'ye aktarılacak) veya android:id="@id/exo_controller ile özel bir denetleyici sağlayarak özelleştirilebilir.

Yüzey türü seçin

PlayerView öğesinin surface_type özelliği, video oynatma için kullanılan yüzeyin türünü ayarlamanıza olanak tanır. İzin verilen değerler surface_view, texture_view, spherical_gl_surface_view (küresel video oynatma için özel bir değerdir), video_decoder_gl_surface_view (uzantı oluşturucular kullanılarak video oluşturma için) ve none (yalnızca ses oynatma için) değerleridir. Hangi yüzey türünün seçileceği hakkında daha fazla bilgiyi Yüzey sayfasında bulabilirsiniz.