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

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

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

Kotlin

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

शानदार

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

हमारा सुझाव है कि आप अपने ऐप्लिकेशन को 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, CurrentMediaItemState, PlaylistState, ErrorState) भी शामिल हैं, जो Player स्टेट को यूज़र इंटरफ़ेस (यूआई) स्टेट में बदलती हैं.

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

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

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

एक नज़र में

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