डिपेंडेंसी जोड़ना
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
(यह सिर्फ़ ऑडियो चलाने के लिए है) को वैल्यू के तौर पर इस्तेमाल किया जा सकता है. किस तरह का सरफेस चुनना है, इस बारे में ज़्यादा जानकारी सरफ़ेस पेज पर देखी जा सकती है.