डिपेंडेंसी जोड़ना
Kotlin
implementation("androidx.media3:media3-ui:1.8.0")
Groovy
implementation "androidx.media3:media3-ui:1.8.0"
PlayerView
सबसे ज़रूरी कॉम्पोनेंट PlayerView है. यह मीडिया चलाने के लिए एक व्यू है.
PlayerView में वीडियो, इमेज, सबटाइटल, और एल्बम आर्ट दिखते हैं. साथ ही, इसमें प्लेबैक कंट्रोल भी होते हैं.
PlayerView में Player इंस्टेंस को अटैच और डिटैच करने के लिए setPlayer() तरीका है. इसके लिए, null पास करें.
PlayerView का इस्तेमाल, वीडियो, इमेज, और ऑडियो, तीनों के लिए किया जा सकता है. यह वीडियो चलाने के दौरान वीडियो और सबटाइटल रेंडर करता है. साथ ही, इमेज चलाने के दौरान बिटमैप रेंडर करता है. यह ऑडियो फ़ाइलों में मेटाडेटा के तौर पर शामिल किए गए आर्टवर्क को भी दिखा सकता है. इसे किसी अन्य यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट की तरह, लेआउट फ़ाइलों में शामिल किया जा सकता है. उदाहरण के लिए, PlayerView को इस एक्सएमएल के साथ शामिल किया जा सकता है:
<androidx.media3.ui.PlayerView
android:id="@+id/player_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:show_buffering="when_playing"
app:show_shuffle_button="true"/>
ऊपर दिए गए स्निपेट से पता चलता है कि PlayerView कई एट्रिब्यूट उपलब्ध कराता है.
इन एट्रिब्यूट का इस्तेमाल, व्यू के व्यवहार के साथ-साथ उसके लुक और फ़ील को पसंद के मुताबिक बनाने के लिए किया जा सकता है. इनमें से ज़्यादातर एट्रिब्यूट के लिए सेटर मेथड उपलब्ध हैं. इनका इस्तेमाल, रनटाइम के दौरान व्यू को पसंद के मुताबिक बनाने के लिए किया जा सकता है. PlayerView दस्तावेज़ में, इन एट्रिब्यूट और सेटर मेथड के बारे में ज़्यादा जानकारी दी गई है.
अगर ExoPlayer का इस्तेमाल किया जा रहा है, तो बेहतर उपयोगकर्ता अनुभव के लिए, keepScreenOn Android एट्रिब्यूट जोड़ें या वेक लॉक सेट करें. बैकग्राउंड में चल रहे प्रोसेस के पेजों में जाकर, उन अन्य कार्रवाइयों की जांच की जा सकती है जिनकी वजह से डिवाइस चालू रहता है.
android:keepScreenOn="true"
लेआउट फ़ाइल में व्यू का एलान करने के बाद, इसे ऐक्टिविटी के onCreate तरीके में देखा जा सकता है:
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // ... playerView = findViewById(R.id.player_view) }
Java
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // ... playerView = findViewById(R.id.player_view); }
जब प्लेयर को शुरू कर दिया जाता है, तब उसे व्यू से अटैच किया जा सकता है. इसके लिए, setPlayer को कॉल करें:
Kotlin
// Instantiate the player. val player = ExoPlayer.Builder(context).build() // Attach player to the view. playerView.player = player // Set the media item to be played. player.setMediaItem(mediaItem) // Prepare the player. player.prepare()
Java
// Instantiate the player. player = new ExoPlayer.Builder(context).build(); // Attach player to the view. playerView.setPlayer(player); // Set the media item to be played. player.setMediaItem(mediaItem); // Prepare the player. player.prepare();
PlayerControlView
PlayerControlView, PlayerView के सब-व्यू में से एक है. इसमें प्रोग्रेस बार और वीडियो चलाने के कंट्रोल मौजूद होते हैं. ध्यान दें कि PlayerControlView का इस्तेमाल, PlayerView के बाहर एक स्टैंडअलोन कॉम्पोनेंट के तौर पर नहीं किया जाना चाहिए. इसे PlayerView पर एट्रिब्यूट सेट करके (जो PlayerControlView पर पास किए जाएंगे) या android:id="@id/exo_controller के साथ कस्टम कंट्रोलर उपलब्ध कराकर, अपनी पसंद के मुताबिक बनाया जा सकता है.
कोई प्लैटफ़ॉर्म टाइप चुनें
PlayerView एट्रिब्यूट की मदद से, वीडियो चलाने के लिए इस्तेमाल किए जाने वाले सर्फ़ेस का टाइप सेट किया जा सकता है.surface_type surface_view, texture_view, spherical_gl_surface_view (यह स्फ़ेरिकल वीडियो चलाने के लिए खास वैल्यू है), video_decoder_gl_surface_view (यह एक्सटेंशन रेंडरर का इस्तेमाल करके वीडियो रेंडर करने के लिए है), और none (यह सिर्फ़ ऑडियो चलाने के लिए है) को वैल्यू के तौर पर इस्तेमाल किया जा सकता है. किस तरह का सरफेस चुनना है, इस बारे में ज़्यादा जानकारी सरफ़ेस पेज पर देखी जा सकती है.