Aşamalı

Aşağıdaki kapsayıcı biçimlerindeki akışlar doğrudan ExoPlayer tarafından oynatılabilir. İçerilen ses ve video örnek biçimleri de desteklenmelidir (bkz. Örnek biçimler bölümüne bakın). Görüntü kapsayıcısı ve biçim desteği için bkz. Resimler.

Kapsayıcı biçimi Destekleniyor Yorumlar
MP4 EVET
M4A EVET
FMP4 EVET
WebM EVET
Matroska EVET
MP3 EVET Bazı canlı yayınlarda yalnızca sabit bit hızı sarması ile arama yapılabilir.**
Ogg EVET Vorbis, Opus ve FLAC içerir
WAV EVET
MPEG-TS EVET
MPEG-PS EVET
FLV EVET Aranamaz*
ADTS (AAC) EVET Yalnızca sabit bit hızında sarma kullanıldığında aranabilir**
FLAC EVET FLAC kitaplığını veya ExoPlayer kitaplığındaki FLAC ayıklayıcısını kullanarak***
AMR EVET Yalnızca sabit bit hızında sarma kullanıldığında aranabilir**

* Kapsayıcı meta veri (örneğin, örnek dizin) kullanarak bir medya oynatıcının verimli bir şekilde arama yapmasını sağlar. Sarma işlemi gerekiyorsa daha uygun bir kapsayıcı biçimi kullanmanızı öneririz.

** Bu ayıklayıcılarda FLAG_ENABLE_CONSTANT_BITRATE_SEEKING işareti vardır Sabit bit hızı varsayımı kullanarak yaklaşık sarma özelliğini etkinleştirme. Bu işlevi varsayılan olarak etkin değildir. Bunu etkinleştirmenin en basit yolu destekleyen tüm ayıklayıcılar için otomatik olarak Açıklandığı şekliyle DefaultExtractorsFactory.setConstantBitrateSeekingEnabled burada bulabilirsiniz.

*** FLAC kitaplığı ayıklayıcısı, işlenebilecek ham ses çıkışını sağlar. tüm API düzeylerinde çerçeveye göre değerlendirebiliriz. ExoPlayer kitaplığı FLAC ayıklayıcı çıkışları FLAC ses kareleri ve bu nedenle bir FLAC kod çözücü (örneğin, MediaCodec FLAC'yi işleyen kod çözücü (API düzeyi 27'den itibaren gereklidir) veya FLAC özellikli FFmpeg kitaplığı). DefaultExtractorsFactory, uygulama FLAC kitaplığı ile oluşturulmuşsa uzantı ayıklayıcıyı kullanın. Aksi takdirde, ExoPlayer kitaplığı ayıklayıcısını kullanır.

MediaItem'i Kullanma

Progresif akışı oynatmak için medya URI'si ile bir MediaItem oluşturun ve bunu oyuncuya iletebilir.

Kotlin

// Create a player instance.
val player = ExoPlayer.Builder(context).build()
// Set the media item to be played.
player.setMediaItem(MediaItem.fromUri(progressiveUri))
// Prepare the player.
player.prepare()

Java

// Create a player instance.
ExoPlayer player = new ExoPlayer.Builder(context).build();
// Set the media item to be played.
player.setMediaItem(MediaItem.fromUri(progressiveUri));
// Prepare the player.
player.prepare();

ProgressiveMediaSource'u Kullanma

Daha fazla özelleştirme seçeneği için bir ProgressiveMediaSource ve oyuncuya MediaItem yerine doğrudan iletebilir.

Kotlin

// Create a data source factory.
val dataSourceFactory: DataSource.Factory = DefaultHttpDataSource.Factory()
// Create a progressive media source pointing to a stream uri.
val mediaSource: MediaSource =
ProgressiveMediaSource.Factory(dataSourceFactory)
    .createMediaSource(MediaItem.fromUri(progressiveUri))
// Create a player instance.
val player = ExoPlayer.Builder(context).build()
// Set the media source to be played.
player.setMediaSource(mediaSource)
// Prepare the player.
player.prepare()

Java

// Create a data source factory.
DataSource.Factory dataSourceFactory = new DefaultHttpDataSource.Factory();
// Create a progressive media source pointing to a stream uri.
MediaSource mediaSource =
    new ProgressiveMediaSource.Factory(dataSourceFactory)
        .createMediaSource(MediaItem.fromUri(progressiveUri));
// Create a player instance.
ExoPlayer player = new ExoPlayer.Builder(context).build();
// Set the media source to be played.
player.setMediaSource(mediaSource);
// Prepare the player.
player.prepare();

Oynatmayı özelleştirme

ExoPlayer, oynatma deneyimini kendi tercihinize göre uyarlamanız için çeşitli yöntemler sunar. iyi bir fikir olabilir. Örnekler için Özelleştirme sayfasına göz atın.