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