प्रोग्रेसिव

नीचे दिए गए कंटेनर फ़ॉर्मैट में मौजूद स्ट्रीम, ExoPlayer से सीधे चलाए जा सकते हैं. शामिल किए गए ऑडियो और वीडियो सैंपल फ़ॉर्मैट भी काम करने चाहिए (देखें ज़्यादा जानकारी के लिए, फ़ॉर्मैट के सैंपल सेक्शन). इमेज कंटेनर और फ़ॉर्मैट के बारे में सहायता पाने के लिए, इमेज देखें.

कंटेनर का फ़ॉर्मैट इनकी अनुमति है टिप्पणियां
MP4 हां
एम4ए हां
एफ़एमपी4 हां
WebM हां
Matroska हां
MP3 हां कुछ स्ट्रीम में, सिर्फ़ एक ही बिटरेट पर आगे-पीछे जाने की सुविधा का इस्तेमाल करके आगे-पीछे जाया जा सकता है**
ऑग हां Vorbis, Opus, और FLAC फ़ॉर्मैट में
WAV हां
MPEG-TS हां
एमपीईजी-पीएस हां
FLV हां वीडियो में आगे-पीछे नहीं जा सकता*
ADTS (AAC) हां सिर्फ़ कॉन्टेंट के किसी हिस्से पर जाने के लिए, कॉन्टेंट की बिटरेट में बदलाव किए बिना वीडियो चलाना**
FLAC हां ExoPlayer लाइब्रेरी में FLAC लाइब्रेरी या FLAC एक्सट्रैक्टर का इस्तेमाल करना***
एएमआर हां सिर्फ़ कॉन्टेंट के किसी हिस्से पर जाने के लिए, कॉन्टेंट की बिटरेट में बदलाव किए बिना वीडियो चलाना**

* वीडियो पर आगे-पीछे जाने की सुविधा काम नहीं करती, क्योंकि कंटेनर में मेटाडेटा (उदाहरण के लिए, सैंपल इंडेक्स) नहीं होता. इससे मीडिया प्लेयर, वीडियो पर बेहतर तरीके से आगे-पीछे नहीं जा सकता. अगर वीडियो में आगे-पीछे जाने की सुविधा ज़रूरी है, तो हमारा सुझाव है कि आप ज़्यादा सही कंटेनर फ़ॉर्मैट का इस्तेमाल करें.

** इन एक्सट्रैक्टर में FLAG_ENABLE_CONSTANT_BITRATE_SEEKING फ़्लैग होते हैं, ताकि एक जैसी बिटरेट का अनुमान लगाकर, वीडियो के किसी हिस्से पर जाने की सुविधा चालू की जा सके. यह की सुविधा डिफ़ॉल्ट रूप से चालू नहीं होती है. इस सुविधा का इस्तेमाल करने वाले सभी एक्सट्रैक्टर के लिए, इस सुविधा को चालू करने का सबसे आसान तरीका DefaultExtractorsFactory.setConstantBitrateSeekingEnabled का इस्तेमाल करना है. इस बारे में यहां बताया गया है.

*** FLAC लाइब्रेरी डेटा इकट्ठा करने वाला टूल, रॉ ऑडियो देता है, जिसे हैंडल किया जा सकता है को लागू किया जा सकता है. ExoPlayer लाइब्रेरी का FLAC एक्सट्रैक्टर, FLAC ऑडियो फ़्रेम दिखाता है. इसलिए, यह FLAC डिकोडर पर निर्भर करता है. उदाहरण के लिए, FLAC को मैनेज करने वाला MediaCodecडिकोडर (एपीआई लेवल 27 से ज़रूरी है) या FLAC की सुविधा चालू की गई FFmpeg लाइब्रेरी. DefaultExtractorsFactory, एक्सटेंशन इकट्ठा करने वाला टूल, अगर ऐप्लिकेशन FLAC लाइब्रेरी की मदद से बनाया गया हो. ऐसा न होने पर, यह ExoPlayer लाइब्रेरी एक्सट्रैक्टर का इस्तेमाल करता है.

MediaItem का इस्तेमाल करना

प्रोग्रेसिव स्ट्रीम चलाने के लिए, मीडिया यूआरआई के साथ MediaItem बनाएं और उसे प्लेयर को पास करें.

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 का इस्तेमाल करना

पसंद के मुताबिक बनाने के ज़्यादा विकल्प देखने के लिए, ProgressiveMediaSource बनाएं और MediaItem के बजाय, उसे सीधे प्लेयर को पास करें.

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();

वीडियो चलाने की सेटिंग में बदलाव करना

ExoPlayer में, वीडियो चलाने के अनुभव को अपने ऐप्लिकेशन की ज़रूरतों के हिसाब से बनाने के कई तरीके उपलब्ध हैं. उदाहरणों के लिए, पसंद के मुताबिक बनाने वाला पेज देखें.