डिपेंडेंसी जोड़ना
Kotlin
implementation("androidx.media3:media3-ui:1.6.0")
Groovy
implementation "androidx.media3:media3-ui:1.6.0"
PlayerView
सबसे ज़रूरी कॉम्पोनेंट PlayerView
है, जो मीडिया चलाने के लिए एक व्यू है.
PlayerView
, वीडियो चलने के दौरान वीडियो, इमेज, सबटाइटल, और एल्बम आर्ट के साथ-साथ, वीडियो चलाने के कंट्रोल भी दिखाता है.
PlayerView
में Player
इंस्टेंस को अटैच और डिटैच करने (null
पास करके) के लिए, setPlayer()
तरीका है.
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
दस्तावेज़ में, इन एट्रिब्यूट और सेटर के तरीकों के बारे में ज़्यादा जानकारी दी गई है.
लेआउट फ़ाइल में व्यू का एलान करने के बाद, उसे ऐक्टिविटी के 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
(सिर्फ़ ऑडियो चलाने के लिए) वैल्यू का इस्तेमाल किया जा सकता है. सर्फ़ेस पेज पर, यह जानकारी मिलती है कि किस तरह का प्लैटफ़ॉर्म चुनना है.