डिपेंडेंसी जोड़ना
Media3 लाइब्रेरी में, Jetpack Compose पर आधारित दो यूज़र इंटरफ़ेस मॉड्यूल शामिल हैं. आपको दोनों को जोड़ने की ज़रूरत नहीं है, क्योंकि Material3 वाला, कोर वाले पर निर्भर करता है.
Kotlin
// Include only one of the following dependencies
implementation("androidx.media3:media3-ui-compose:1.9.2")
implementation("androidx.media3:media3-ui-compose-material3:1.9.2")
Groovy
// Include only one of the following dependencies
implementation "androidx.media3:media3-ui-compose:1.9.2"
implementation "androidx.media3:media3-ui-compose-material3:1.9.2"
हमारा सुझाव है कि आप अपने ऐप्लिकेशन को 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 कॉम्पोनेंट के साथ स्टाइल किया जाता है. इससे आपको अपने बटन और अन्य यूज़र इंटरफ़ेस (यूआई) एलिमेंट को शुरुआत से बनाने की ज़रूरत नहीं पड़ती. इन कॉम्पोनेंट की थीम, रंग, और आइकॉन को अब भी अपनी पसंद के मुताबिक बनाया जा सकता है. हालांकि, मुख्य कॉम्पोनेंट आपको पहले से उपलब्ध कराए जाते हैं.
एक नज़र में
| सुविधा | 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 के दिशा-निर्देशों के मुताबिक, प्लेयर यूज़र इंटरफ़ेस (यूआई) को फटाफट बनाया जा सकता है. |