डिपेंडेंसी जोड़ना
Media3 लाइब्रेरी में, Jetpack Compose पर आधारित दो यूज़र इंटरफ़ेस मॉड्यूल शामिल होते हैं. आपको दोनों को जोड़ने की ज़रूरत नहीं है, क्योंकि Material3 वाला, कोर पर निर्भर करता है.
Kotlin
// Include only one of the following dependencies implementation("androidx.media3:media3-ui-compose:1.9.0") implementation("androidx.media3:media3-ui-compose-material3:1.9.0")
Groovy
// Include only one of the following dependencies implementation "androidx.media3:media3-ui-compose:1.9.0" implementation "androidx.media3:media3-ui-compose-material3:1.9.0"
हमारा सुझाव है कि आप अपने ऐप्लिकेशन को Compose-first फ़ैशन में डेवलप करें या Views का इस्तेमाल बंद करें.
पूरी तरह से कंपोज़ किया गया डेमो ऐप्लिकेशन
media3-ui-compose लाइब्रेरी में, बॉक्स से बाहर के कंपोज़ेबल (जैसे कि बटन, इंडिकेटर, इमेज या डायलॉग) शामिल नहीं हैं. हालांकि, आपको पूरी तरह से 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 कॉम्पोनेंट के साथ स्टाइल किया जाता है. इससे आपको अपने बटन और अन्य यूज़र इंटरफ़ेस (यूआई) एलिमेंट को शुरुआत से बनाने की ज़रूरत नहीं पड़ती. इन कॉम्पोनेंट की थीम, रंग, और आइकॉन को अब भी अपनी पसंद के मुताबिक बनाया जा सकता है. हालांकि, इनके मुख्य फ़ंक्शन आपको पहले से ही उपलब्ध कराए जाते हैं.
एक नज़र में
| सुविधा | media3-ui-compose |
media3-ui-compose-material3 |
|---|---|---|
| यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट | इसमें PlayerSurface और ContentFrame जैसे बुनियादी एलिमेंट शामिल हैं. हालांकि, इसमें पहले से स्टाइल किए गए बटन या कंट्रोल नहीं हैं. |
इसमें पहले से बने, Material3 स्टाइल वाले Composables का पूरा सेट मिलता है. जैसे, PlayPauseButton, SeekBackButton, PositionAndDurationText वगैरह. |
| स्टेट मैनेजमेंट | यह लॉजिक को मैनेज करने के लिए, remember...State होल्डर उपलब्ध कराता है. |
यह स्थिति को अंदरूनी तौर पर मैनेज करता है. हालांकि, ज़रूरत पड़ने पर अब भी स्थिति को मैनेज करने वाले कॉम्पोनेंट को ऐक्सेस किया जा सकता है. |
| डिपेंडेंसी | androidx.compose.foundation |
media3-ui-compose, androidx.compose.material3, com.google.android.material |
| डिवाइस का मुख्य इस्तेमाल | कस्टम डिज़ाइन सिस्टम की मदद से प्लेयर यूज़र इंटरफ़ेस (यूआई) बनाना. विज्ञापन के रंगरूप और बनावट पर पूरा कंट्रोल. | Material Design 3 के दिशा-निर्देशों के मुताबिक, प्लेयर यूज़र इंटरफ़ेस (यूआई) को फटाफट बनाया जा सकता है. |