मीडिया शेयर करने के बारे में जानकारी

चाहे वह कोई मज़ेदार इमेज हो, जानकारी देने वाला कोई वीडियो हो या कोई दिलचस्प ऑडियो क्लिप हो, उपयोगकर्ताओं को कॉन्टेंट शेयर करने की सुविधा देने से, उन्हें बेहतर अनुभव मिलता है. साथ ही, दिलचस्पी है. यह दस्तावेज़ Android पर मीडिया शेयर करने के बारे में ज़रूरी बातें बताता है. साथ ही, इस सुविधा को इंटिग्रेट करने के लिए आपको ज़रूरी एपीआई और तकनीकें भी शामिल करनी होंगी.

शेयर करने के लिए डिज़ाइन किया गया

Android के डिज़ाइन में, इंटेंट पर आधारित सिस्टम का इस्तेमाल करके, ऐप्लिकेशन के बीच इंटरऑपरेबिलिटी को बढ़ावा दिया जाता है. इंटेंट, किसी कार्रवाई के बारे में खास जानकारी होता है. इंटेंट की मदद से, ऐप्लिकेशन एक-दूसरे के बारे में खास जानकारी के बिना, एक-दूसरे से बातचीत कर सकते हैं.

जब कोई ऐप्लिकेशन डेटा शेयर करना चाहता है या कोई कार्रवाई शुरू करना चाहता है, तो यह एक ऐसा इंटेंट बनाता है जो कॉन्टेंट और कार्रवाई का टाइप तय करता है. Android सिस्टम, कॉन्टेंट की सूची दिखाता है ऐसे ऐप्लिकेशन भी हो सकते हैं जो उस इंटेंट को हैंडल कर सकें. इससे उपयोगकर्ता यह चुन सकता है कि इस्तेमाल करना है. इस तरीके से, साथ मिलकर काम करने को बढ़ावा मिलता है.

टेक्स्ट शेयर करने के लिए, कोड की सिर्फ़ कुछ लाइनें डालनी होती हैं:

val sendIntent: Intent = Intent().apply {
    action = Intent.ACTION_SEND
    putExtra(Intent.EXTRA_TEXT, "This is my text to share.")
    type = "text/plain"
}

val shareIntent = Intent.createChooser(sendIntent, null)
startActivity(shareIntent)

createChooser लाइन में Android शेयरशीट का यूज़र इंटरफ़ेस (यूआई) दिखता है. इसकी मदद से, उपयोगकर्ता एक ही टैप में लोगों के साथ जानकारी शेयर कर सकते हैं. इसमें, काम के ऐप्लिकेशन के सुझाव भी शामिल हैं. Android शेयरशीट की मदद से ये काम भी किए जा सकते हैं:

Android शेयरशीट और उनका इस्तेमाल करने के तरीके के बारे में ज़्यादा जानने के लिए, दूसरे ऐप्लिकेशन को आसान डेटा भेजना लेख पढ़ें.

'सीधे शेयर करें' सुविधा के टारगेट उपलब्ध कराएं, ताकि दूसरे ऐप्लिकेशन के उपयोगकर्ता आपके ऐप्लिकेशन के साथ यूआरएल, इमेज या अन्य तरह का डेटा आसानी से और तेज़ी से शेयर कर सकें. 'सीधे शेयर करें' सुविधा, मैसेजिंग और सोशल मीडिया ऐप्लिकेशन के संपर्कों को सीधे Android की शेयरशीट पर दिखाती है. इसके लिए, उपयोगकर्ताओं को ऐप्लिकेशन चुनने और फिर संपर्क खोजने की ज़रूरत नहीं पड़ती.

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

मीडिया फ़ाइलें शेयर करना

इंटेंट में बहुत कम डेटा हो सकता है, इसलिए Android इसमें फ़ाइलों को सुरक्षित हैंडल शामिल किया जा सकता है. इनके डिवाइस से मीडिया फ़ाइलें सुरक्षित रूप से शेयर की जा रही हैं आपके ऐप्लिकेशन में ये शामिल हैं:

सुरक्षित तरीके से शेयर करने के बारे में ज़्यादा जानकारी के लिए, फ़ाइलें शेयर करने के बारे में जानकारी देखें फ़ाइलें.

मीडिया को शेयर करने के लिए ऑप्टिमाइज़ करें

भले ही, आप अपने ऐप्लिकेशन में अन्य उपयोगकर्ताओं के साथ मीडिया शेयर कर रहे हों या किसी दूसरे ऐप्लिकेशन के साथ, आपको यह पक्का करना होगा कि आपने ऐसा मीडिया शेयर किया हो जिसकी क्वालिटी अच्छी हो.

क्वालिटी और साइज़ के बीच संतुलन बनाए रखना

बड़ी मीडिया फ़ाइलें तेज़ी से बैंडविथ और स्टोरेज का इस्तेमाल कर सकती हैं. इससे इससे आपके उपयोगकर्ताओं को परेशानी हो सकती है. साथ ही, ज़्यादा डेटा इस्तेमाल होने पर शुल्क भी लग सकता है. यहां कंप्रेस करना आपकी सबसे अच्छी दोस्त है.

  • इमेज कंप्रेस करना: मॉडर्न इमेज कंप्रेशन फ़ॉर्मैट का इस्तेमाल करें जैसे WebP और AVIF, जो पारंपरिक कुकी की तुलना में बेहतर कंप्रेशन अनुपात ऑफ़र करते हैं ऐसे JPEG जिनका क्वालिटी में ज़्यादा नुकसान नहीं होता. अलग-अलग क्वालिटी आज़माकर देखें बेहतर विकल्प खोजने के लिए सेटिंग.
  • वीडियो कंप्रेस करना: AV1 या H.265 (HEVC) वीडियो का फ़ायदा पाएं कंप्रेशन की, बेहतर कंप्रेशन दक्षता देने के लिए, बेहतरीन विज़ुअल क्वालिटी. हार्डवेयर की मदद से कोड में बदलने के तरीके की जांच की जा सकती है mediaPerformanceClass और Android 10 और इसके बाद के वर्शन वाले डिवाइसों पर तय करें कि आपका डिवाइस किस चीज़ का सबसे अच्छा समर्थन कर सकता है. अलग-अलग तरह का ऑफ़र देने के बारे में सोचें उपयोगकर्ताओं की अलग-अलग प्राथमिकताओं और नेटवर्क के हिसाब से समाधान के विकल्प शर्तें.
fun hasHardwareEncodingSupportFor(mimeType: String): Boolean {
    val codecList = MediaCodecList(REGULAR_CODECS)
    val codecInfos = codecList.codecInfos
    for ( codecInfo in codecInfos ) {
        if (!codecInfo.isEncoder()) {
            continue;
        }
        if (!codecInfo.isHardwareAccelerated()) {
            continue;
        }
        val types: Array<String> = codecInfo.getSupportedTypes()
        for (j in types.indices) {
            if (types[j].equals(mimeType, ignoreCase = true)) {
                return true
            }
        }
    }
    return false
}
// test for AV1 hardware encoding support
val hasAV1 = hasHardwareEncodingSupportFor("video/av01")

मीडिया का अपनाना

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

इस बारे में साफ़ तौर पर निर्देश दें कि उपयोगकर्ता अपने मीडिया को कैसे ऑप्टिमाइज़ कर सकते हैं शेयर करने से पहले. इसमें एन्कोडिंग बिटरेट को अडजस्ट करने से जुड़ी सलाह शामिल हो सकती हैं. क्वांटाइज़ेशन पैरामीटर सेट करना, वीडियो का फ़ॉर्मैट चुनना, या फ़ाइलों का सही साइज़ चुनना या अलग-अलग शेयर करने के विकल्प.

मीडिया को ज़्यादा खोजने लायक बनाना

अपनी मीडिया फ़ाइलों में टाइटल, ब्यौरे, और टैग जैसे काम के मेटाडेटा जोड़ने से, उन्हें खोजने में आसानी होती है. उपयोगकर्ताओं को अपने कारोबार की प्रोफ़ाइल जोड़ने के लिए बढ़ावा दें शेयर करते समय जानकारी और कैप्शन. साथ ही, अनुभव को और भी मनमुताबिक बनाने की सुविधा मिलती है.

इमेज में मेटाडेटा जोड़ना

Jetpack ExifInterface क्लास, Exif टैग के तौर पर JPEG, PNG, और WebP इमेज में मेटाडेटा लिखती है.

// sets the title of the image in the form of Exif data
val exif = ExifInterface(imageFile)
exif.setAttribute(ExifInterface.TAG_IMAGE_DESCRIPTION, "Beautiful sunset")
exif.saveAttributes()