नीचे दिए गए कंटेनर फ़ॉर्मैट में मौजूद स्ट्रीम को ExoPlayer सीधे तौर पर चला सकता है. ऑडियो और वीडियो के सैंपल के फ़ॉर्मैट भी काम करने चाहिए. ज़्यादा जानकारी के लिए, सैंपल के फ़ॉर्मैट सेक्शन देखें. इमेज कंटेनर और फ़ॉर्मैट के बारे में जानने के लिए, इमेज देखें.
| कंटेनर फ़ॉर्मैट | समर्थित | टिप्पणियां |
|---|---|---|
| MP4 | हां | |
| M4A | हां | |
| FMP4 | हां | |
| WebM | हां | |
| Matroska | हां | |
| MP3 | हां | कुछ स्ट्रीम में, सिर्फ़ कॉन्स्टेंट बिटरेट सीकिंग का इस्तेमाल किया जा सकता है** |
| Ogg | हां | इसमें Vorbis, Opus, और FLAC फ़ॉर्मैट शामिल हैं |
| WAV | हां | |
| MPEG-TS | हां | |
| MPEG-PS | हां | |
| FLV | हां | आगे-पीछे नहीं किया जा सकता* |
| ADTS (AAC) | हां | सिर्फ़ कॉन्स्टेंट बिटरेट सीकिंग का इस्तेमाल करके ढूंढा जा सकता है** |
| FLAC | हां | FLAC लाइब्रेरी या ExoPlayer लाइब्रेरी में मौजूद FLAC एक्सट्रैक्टर का इस्तेमाल करके*** |
| एएमआर | हां | सिर्फ़ कॉन्स्टेंट बिटरेट सीकिंग का इस्तेमाल करके ढूंढा जा सकता है** |
* कंटेनर, मेटाडेटा (उदाहरण के लिए, सैंपल इंडेक्स) उपलब्ध नहीं कराता है. इसलिए, मीडिया प्लेयर को बेहतर तरीके से सीक करने की अनुमति नहीं दी जा सकती. इसलिए, सीक करने की सुविधा काम नहीं करती. अगर आपको सीकिंग की सुविधा चाहिए, तो हमारा सुझाव है कि आप ज़्यादा सही कंटेनर फ़ॉर्मैट का इस्तेमाल करें.
** इन एक्सट्रैक्टर में, FLAG_ENABLE_CONSTANT_BITRATE_SEEKING फ़्लैग होते हैं. इनका इस्तेमाल, बिटरेट को स्थिर मानकर अनुमानित सीकिंग की सुविधा चालू करने के लिए किया जाता है. यह सुविधा डिफ़ॉल्ट रूप से चालू नहीं होती. इस सुविधा को उन सभी एक्सट्रैक्टर के लिए चालू करने का सबसे आसान तरीका है जो इसका इस्तेमाल कर सकते हैं. इसके लिए, DefaultExtractorsFactory.setConstantBitrateSeekingEnabled का इस्तेमाल करें. इसके बारे में यहां बताया गया है.
*** FLAC लाइब्रेरी एक्सट्रैक्टर, रॉ ऑडियो आउटपुट करता है. इसे सभी एपीआई लेवल पर फ़्रेमवर्क से मैनेज किया जा सकता है. ExoPlayer लाइब्रेरी का FLAC एक्सट्रैक्टर, FLAC ऑडियो फ़्रेम आउटपुट करता है. इसलिए, यह FLAC डिकोडर पर निर्भर करता है. उदाहरण के लिए, MediaCodec डिकोडर, FLAC को हैंडल करता है (एपीआई लेवल 27 से ज़रूरी है) या FLAC की सुविधा चालू होने के साथ FFmpeg लाइब्रेरी. अगर ऐप्लिकेशन को FLAC लाइब्रेरी की मदद से बनाया गया है, तो DefaultExtractorsFactory एक्सटेंशन एक्सट्रैक्टर का इस्तेमाल करता है.
ऐसा न होने पर, यह 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, आपके ऐप्लिकेशन की ज़रूरतों के हिसाब से वीडियो चलाने की सुविधा को बेहतर बनाने के कई तरीके उपलब्ध कराता है. उदाहरणों के लिए, कस्टमाइज़ेशन पेज देखें.