Compose पर आधारित यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल शुरू करना

डिपेंडेंसी जोड़ना

Media3 लाइब्रेरी में, Jetpack Compose पर आधारित दो यूज़र इंटरफ़ेस मॉड्यूल शामिल हैं. आपको दोनों को जोड़ने की ज़रूरत नहीं है, क्योंकि Material3 वाला, कोर वाले पर निर्भर करता है.

Kotlin

// Include only one of the following dependencies
implementation("androidx.media3:media3-ui-compose:1.10.0")
implementation("androidx.media3:media3-ui-compose-material3:1.10.0")

Groovy

// Include only one of the following dependencies
implementation "androidx.media3:media3-ui-compose:1.10.0"
implementation "androidx.media3:media3-ui-compose-material3:1.10.0"

हमारा सुझाव है कि आप अपने ऐप्लिकेशन को Compose-first फ़ैशन में डेवलप करें या Views का इस्तेमाल बंद करें.

पूरी तरह से कंपोज़ किया गया डेमो ऐप्लिकेशन

media3-ui-compose लाइब्रेरी में, बॉक्स से बाहर के कंपोज़ेबल (जैसे कि बटन, इंडिकेटर, इमेज या डायलॉग) शामिल नहीं हैं. हालांकि, आपको पूरी तरह से कंपोज़ में लिखा गया डेमो ऐप्लिकेशन मिल सकता है. इसमें इंटरऑपरेबिलिटी के किसी भी समाधान का इस्तेमाल नहीं किया गया है. जैसे, PlayerView को AndroidView में रैप करना. डेमो ऐप्लिकेशन, media3-ui-compose मॉड्यूल से यूज़र इंटरफ़ेस (यूआई) स्टेट होल्डर क्लास का इस्तेमाल करता है. साथ ही, यह Compose Material3 लाइब्रेरी का इस्तेमाल करता है.

मुझे कौनसी लाइब्रेरी की ज़रूरत है?

अपनी ज़रूरत के हिसाब से, Media3 Compose की दो लाइब्रेरी में से किसी एक को चुना जा सकता है. इनके बीच का अंतर समझने के लिए, यूज़र इंटरफ़ेस (यूआई) की स्थिति को तैयार करने वाली पाइपलाइन के बारे में सोचें: Business logic → UI logic → UI.

अपने यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट को पूरी तरह से कंट्रोल करने के लिए, media3-ui-compose का इस्तेमाल करें.

यह लाइब्रेरी, Business logic → UI logic कनेक्शन उपलब्ध कराती है. इसमें PlayerSurface और ContentFrame जैसे बुनियादी कॉम्पोनेंट शामिल हैं.साथ ही, इसमें स्टेट होल्डर क्लास (जैसे, PlayPauseButtonState) भी शामिल हैं. ये क्लास, Player स्टेट को यूज़र इंटरफ़ेस (यूआई) स्टेट में बदलती हैं.

यह लाइब्रेरी, इस्तेमाल के लिए तैयार मटीरियल डिज़ाइन कॉम्पोनेंट उपलब्ध नहीं कराती है. यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट बनाने और उन्हें स्टाइल करने की ज़िम्मेदारी आपकी है. इससे आपको लुक और फ़ील पर ज़्यादा कंट्रोल मिलता है. इसलिए, अगर आपके पास बहुत ज़्यादा कस्टम डिज़ाइन सिस्टम है, तो यह आपके लिए सबसे सही विकल्प है.

Material Design के साथ तेज़ी से इंटिग्रेट करने के लिए, media3-ui-compose-material3 का इस्तेमाल करें.

यह लाइब्रेरी, पाइपलाइन का आखिरी UI हिस्सा उपलब्ध कराती है. यह media3-ui-compose पर निर्भर करता है. इसमें पहले से बनाए गए कंपोज़ेबल फ़ंक्शन शामिल होते हैं, जिन्हें Material3 कॉम्पोनेंट के साथ स्टाइल किया जाता है. इनमें Player कंपोज़ेबल भी शामिल है. यह वीडियो, कंट्रोल, और प्रोग्रेस बार के साथ मीडिया चलाने का बेहतर अनुभव देता है. इससे आपको अपने बटन और अन्य यूज़र इंटरफ़ेस (यूआई) एलिमेंट को शुरुआत से बनाने की ज़रूरत नहीं पड़ती. इन कॉम्पोनेंट की थीम, रंग, और आइकॉन अब भी अपनी पसंद के मुताबिक बनाए जा सकते हैं. हालांकि, इनका मुख्य कोड आपको पहले से ही उपलब्ध कराया जाता है.

एक नज़र में

सुविधा media3-ui-compose media3-ui-compose-material3
यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट इसमें PlayerSurface और ContentFrame जैसे बुनियादी एलिमेंट शामिल हैं. हालांकि, इसमें पहले से स्टाइल किए गए बटन या कंट्रोल नहीं हैं. यह Player कंपोज़ेबल और पहले से बने, Material3 स्टाइल वाले कंपोज़ेबल का पूरा सेट उपलब्ध कराता है. जैसे, PlayPauseButton, SeekBackButton, PositionAndDurationText वगैरह.
स्टेट मैनेजमेंट यह लॉजिक को मैनेज करने के लिए, remember...State होल्डर उपलब्ध कराता है. यह स्थिति को अंदरूनी तौर पर मैनेज करता है. हालांकि, ज़रूरत पड़ने पर अब भी स्थिति को मैनेज करने वाले कॉम्पोनेंट को ऐक्सेस किया जा सकता है.
ज़रूरी शर्तें androidx.compose.foundation media3-ui-compose, androidx.compose.material3, com.google.android.material
डिवाइस का मुख्य इस्तेमाल कस्टम डिज़ाइन सिस्टम की मदद से प्लेयर यूज़र इंटरफ़ेस (यूआई) बनाना. विज्ञापन के रंगरूप और बनावट पर पूरा कंट्रोल. Material Design 3 के दिशा-निर्देशों के मुताबिक, प्लेयर यूज़र इंटरफ़ेस (यूआई) को फटाफट बनाया जा सकता है.