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 तरीके से बनाएं या व्यू का इस्तेमाल करने के बजाय, Compose का इस्तेमाल करें.

Compose पर आधारित डेमो ऐप्लिकेशन

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

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 के दिशा-निर्देशों के मुताबिक, प्लेयर यूज़र इंटरफ़ेस (यूआई) को तेज़ी से बनाना.