प्रारंभ करना

इस्तेमाल के सामान्य उदाहरणों के लिए, ExoPlayer का इस्तेमाल शुरू करने में यहां बताया गया तरीका अपनाएं:

  1. अपने प्रोजेक्ट के लिए डिपेंडेंसी के तौर पर ExoPlayer को जोड़ें.
  2. ExoPlayer इंस्टेंस बनाएं.
  3. प्लेयर को व्यू से जोड़ें (वीडियो आउटपुट और उपयोगकर्ता इनपुट के लिए).
  4. खेलने के लिए, MediaItem वाला प्लेयर तैयार करें.
  5. पूरा हो जाने पर प्लेयर को छोड़ दें.

इन चरणों के बारे में नीचे ज़्यादा जानकारी दी गई है. एक पूरे उदाहरण के लिए, इसे देखें: मुख्य डेमो ऐप्लिकेशन में PlayerActivity.

ExoPlayer को डिपेंडेंसी के तौर पर जोड़ें

ExoPlayer मॉड्यूल जोड़ें

AndroidX Media3 का आसानी से इस्तेमाल करने के लिए, Gradle जोड़ना ये आपके ऐप्लिकेशन की build.gradle फ़ाइल में ज़रूरी लाइब्रेरी पर निर्भर करती हैं मॉड्यूल का इस्तेमाल नहीं किया जाएगा.

उदाहरण के लिए, DASH प्लेबैक सपोर्ट और यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट के साथ ExoPlayer पर निर्भर रहने के लिए इस तरह के मॉड्यूल पर डिपेंडेंसी जोड़ी जा सकती है:

Kotlin

implementation("androidx.media3:media3-exoplayer:1.4.0")
implementation("androidx.media3:media3-exoplayer-dash:1.4.0")
implementation("androidx.media3:media3-ui:1.4.0")

ग्रूवी

implementation "androidx.media3:media3-exoplayer:1.4.0"
implementation "androidx.media3:media3-exoplayer-dash:1.4.0"
implementation "androidx.media3:media3-ui:1.4.0"

जहां 1.4.0 आपका पसंदीदा वर्शन है (नया वर्शन (जैसे, प्रॉडक्ट की जानकारी) देखें. सभी मॉड्यूल एक जैसे वर्शन के होने चाहिए.

AndroidX Media3 में लाइब्रेरी मॉड्यूल होते हैं, जो बाहरी लाइब्रेरी का इस्तेमाल करें. कुछ हैं Maven रिपॉज़िटरी से मिलता है, जबकि अन्य को मैन्युअल तरीके से बनाना होता है. लाइब्रेरी डायरेक्ट्री को ब्राउज़ करें और ज़्यादा जानकारी के लिए अलग-अलग README देखें.

उपलब्ध लाइब्रेरी मॉड्यूल के बारे में ज़्यादा जानकारी यहां मिल सकती है: Google Maven AndroidX मीडिया पेज.

Java 8 समर्थन चालू करें

अगर यह पहले से सक्षम नहीं है, तो आपको सभी build.gradle में Java 8 समर्थन चालू करना होगा ऐसी फ़ाइलें जो ExoPlayer पर निर्भर करती हैं. इसके लिए, android सेक्शन में यह जोड़ें:

compileOptions {
  targetCompatibility JavaVersion.VERSION_1_8
}

मल्टीडेक्स को चालू करें

अगर आपके ग्रेडल minSdkVersion की वैल्यू 20 या इससे कम है, तो आपको मल्टीडेक्स को चालू करें इससे आपको बिल्ड से जुड़ी गड़बड़ियों से बचा जा सकता है.

प्लेयर बनाएं

ExoPlayer.Builder का इस्तेमाल करके, ExoPlayer इंस्टेंस बनाया जा सकता है. इससे आपको ये सुविधाएं मिलेंगी पसंद है. नीचे दिया गया कोड बना रहे हैं.

Kotlin

val player = ExoPlayer.Builder(context).build()

Java

ExoPlayer player = new ExoPlayer.Builder(context).build();

थ्रेडिंग के बारे में जानकारी

ExoPlayer के इंस्टेंस, किसी एक ऐप्लिकेशन थ्रेड से ऐक्सेस किए जा सकते हैं. ज़्यादातर मामलों में, यह ऐप्लिकेशन का मुख्य थ्रेड होना चाहिए. इसका उपयोग करके ExoPlayer के यूआई कॉम्पोनेंट का इस्तेमाल करते समय, ऐप्लिकेशन का मुख्य थ्रेड होना ज़रूरी है या IMA एक्सटेंशन पर क्लिक करें.

जिस थ्रेड पर ExoPlayer इंस्टेंस ऐक्सेस किया जाना चाहिए उसे साफ़ तौर पर ऐक्सेस किया जा सकता है प्लेयर बनाते समय Looper पास करके तय किया जाता है. अगर नहीं, Looper है तय किया जाता है, तो उस थ्रेड का Looper होता है जिस पर प्लेयर बनाया गया है इस्तेमाल किया है या अगर उस थ्रेड में Looper नहीं है, तोLooper ऐप्लिकेशन के मुख्य थ्रेड का उपयोग किया जाता है. सभी मामलों में, थ्रेड का Looper प्लेयर को ऐक्सेस करना ज़रूरी है. इसके लिए अनुरोध किया जा सकता है Player.getApplicationLooper.

ExoPlayer के थ्रेडिंग मॉडल के बारे में ज़्यादा जानने के लिए, "थ्रेडिंग मॉडल" सेक्शन में जाएं.

प्लेयर को व्यू से जोड़ें

ExoPlayer लाइब्रेरी में, मीडिया के लिए पहले से बने कई यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट मिलते हैं प्लेबैक. इनमें PlayerView शामिल है, जो PlayerControlView, SubtitleView, और Surface की मदद से किस वीडियो को रेंडर किया गया. आपके ऐप्लिकेशन के लेआउट xml में PlayerView को शामिल किया जा सकता है. उदाहरण के लिए, प्लेयर को व्यू से बाइंड करने के लिए:

Kotlin

// Bind the player to the view.
playerView.player = player

Java

// Bind the player to the view.
playerView.setPlayer(player);

PlayerControlView को एक स्टैंडअलोन कॉम्पोनेंट के तौर पर भी इस्तेमाल किया जा सकता है. इनका इस्तेमाल सिर्फ़ ऑडियो के लिए किया जा सकता है.

ExoPlayer के पहले से बने यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट का इस्तेमाल करना ज़रूरी नहीं है. वीडियो ऐप्लिकेशन के लिए जो अपना खुद का यूज़र इंटरफ़ेस (यूआई) लागू करते हैं, टारगेट SurfaceView, TextureView, ExoPlayer की सेवा का इस्तेमाल करके, SurfaceHolder या Surface को सेट किया जा सकता है setVideoSurfaceView, setVideoTextureView, setVideoSurfaceHolder, और setVideoSurface तरीके. ExoPlayer का addTextOutput तरीका यह कर सकता है इसका इस्तेमाल कैप्शन पाने के लिए किया जाना चाहिए. ये कैप्शन, वीडियो चलने के दौरान रेंडर होने चाहिए.

प्लेलिस्ट में अपने-आप जानकारी भरें और प्लेयर तैयार करें

ExoPlayer में, मीडिया का हर हिस्सा MediaItem से दिखाया जाता है. गेम खेलने के लिए मीडिया का हिस्सा है, तो आपको संबंधित MediaItem बनाना होगा. इसे प्लेयर, प्लेयर तैयार करें, और प्लेबैक शुरू करने के लिए play पर कॉल करें:

Kotlin

// Build the media item.
val mediaItem = MediaItem.fromUri(videoUri)
// Set the media item to be played.
player.setMediaItem(mediaItem)
// Prepare the player.
player.prepare()
// Start the playback.
player.play()

Java

// Build the media item.
MediaItem mediaItem = MediaItem.fromUri(videoUri);
// Set the media item to be played.
player.setMediaItem(mediaItem);
// Prepare the player.
player.prepare();
// Start the playback.
player.play();

ExoPlayer से प्लेलिस्ट को सीधे तौर पर इस्तेमाल किया जा सकता है, इसलिए प्लेयर को तैयार किया जा सकता है इस सुविधा का इस्तेमाल करके, एक के बाद एक मीडिया आइटम चलाए जा सकते हैं:

Kotlin

// Build the media items.
val firstItem = MediaItem.fromUri(firstVideoUri)
val secondItem = MediaItem.fromUri(secondVideoUri)
// Add the media items to be played.
player.addMediaItem(firstItem)
player.addMediaItem(secondItem)
// Prepare the player.
player.prepare()
// Start the playback.
player.play()

Java

// Build the media items.
MediaItem firstItem = MediaItem.fromUri(firstVideoUri);
MediaItem secondItem = MediaItem.fromUri(secondVideoUri);
// Add the media items to be played.
player.addMediaItem(firstItem);
player.addMediaItem(secondItem);
// Prepare the player.
player.prepare();
// Start the playback.
player.play();

वीडियो चलाने के दौरान, प्लेलिस्ट को अपडेट करने की ज़रूरत नहीं है फिर से खेलें. इस प्लेलिस्ट में प्लेलिस्ट में जानकारी अपने-आप भरने और बदलाव करने के बारे में ज़्यादा जानें प्लेलिस्ट पेज. तब उपलब्ध विभिन्न विकल्पों के बारे में अधिक पढ़ें, जब क्लिप बनाने और सबटाइटल फ़ाइलों को अटैच करने जैसे मीडिया आइटम बनाने के लिए मीडिया आइटम पेज.

प्लेयर को कंट्रोल करें

प्लेयर तैयार होने के बाद, कॉल करने के तरीकों से प्लेबैक को कंट्रोल किया जा सकता है प्लेयर पर. सबसे ज़्यादा इस्तेमाल किए जाने वाले कुछ तरीके यहां दिए गए हैं:

  • play और pause पर, वीडियो चलाने की सुविधा चालू और बंद की जा सकती है.
  • seekTo, मीडिया में वीडियो चलाने की अनुमति देता है.
  • hasPrevious, hasNext, previous, और next प्लेलिस्ट.
  • setRepeatMode यह कंट्रोल करता है कि मीडिया लूप में चलाएं या नहीं.
  • setShuffleModeEnabled, प्लेलिस्ट शफ़ल करने को कंट्रोल करता है.
  • setPlaybackParameters, वीडियो चलाने की स्पीड और ऑडियो पिच में बदलाव करता है.

अगर प्लेयर को PlayerView या PlayerControlView से लिंक किया गया है, तो तो इन कॉम्पोनेंट के साथ उपयोगकर्ता इंटरैक्शन करने पर, इससे जुड़े तरीके चालू हो जाएंगे खिलाड़ी को शुरू करना होगा.

प्लेयर को छोड़ें

खिलाड़ी की ज़रूरत न होने पर उसे रिलीज़ करना ज़रूरी होता है, ताकि वह खाली हो सके अन्य ऐप्लिकेशन के इस्तेमाल के लिए, वीडियो डिकोडर जैसे सीमित संसाधनों का इस्तेमाल करना. यह ExoPlayer.release पर कॉल करके ऐसा किया जा सकता है.