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

Bağımlılığı ekleme

Kotlin

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

Modern

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

PlayerView

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

PlayerView, Player örneklerini eklemek ve ayırmak (null değerini ileterek) için setPlayer() yöntemine sahiptir.

PlayerView hem video, resim hem de ses oynatma için kullanılabilir. Video oynatma için video ve altyazıları, resim oynatma için bitmap'leri oluşturur ve ses dosyalarına meta veri olarak eklenen posterleri gösterebilir. Diğer kullanıcı arayüzü bileşenleri gibi düzen dosyalarınıza ekleyebilirsiniz. Örneğin, aşağıdaki XML ile bir PlayerView eklenebilir:

<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ı, görünümünü ve tarzını özelleştirmek için kullanılabilir. Bu özelliklerin çoğunda, çalışma zamanında görünümü özelleştirmek için kullanılabilecek karşılık gelen ayarlayıcı yöntemleri bulunur. PlayerView belgelerinde bu özellikler ve ayarlayıcı yöntemler daha ayrıntılı bir şekilde açıklanmıştır.

Daha rahat bir kullanıcı deneyimi için keepScreenOn Android özelliğini ekleyebilir veya ExoPlayer kullanıyorsanız uyanık kalma kilidi ayarlayabilirsiniz. Cihazın uyanık kalmasına neden olan diğer işlemleri arka plan çalışma 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ığında 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, ilerleme çubuğunu ve oynatmayı kontrol eden düğmeleri içeren PlayerView alt görünümden biridir. PlayerControlView, PlayerView dışında bağımsız bir bileşen olarak kullanılmak üzere tasarlanmamıştır. PlayerView üzerinde özellikler ayarlanarak (PlayerControlView öğesine aktarılır) veya android:id="@id/exo_controller ile özel bir denetleyici sağlanarak özelleştirilebilir.

Yüzey türü seçme

PlayerView öğesinin surface_type özelliği, video oynatma için kullanılan yüzey 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çindir) ve none (yalnızca ses oynatma için). Hangi yüzey türünü seçeceğinizle ilgili daha fazla bilgiyi Yüzey sayfasında bulabilirsiniz.