नीचे दिए गए कंटेनर फ़ॉर्मैट में मौजूद स्ट्रीम, 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 में, वीडियो चलाने के अनुभव को अपने ऐप्लिकेशन की ज़रूरतों के हिसाब से बनाने के कई तरीके उपलब्ध हैं. उदाहरणों के लिए, पसंद के मुताबिक बनाने वाला पेज देखें.