मीडिया आइटम की सूची बनाएं और उन्हें फिर से पाएं

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

शुरू करने से पहले

  • डिवाइस सेटअप की जांच करना: पक्का करें कि आपने उपयोगकर्ता के लिए डिवाइस बनाया और कॉन्फ़िगर किया हो.
  • Ambient API फ़्लो को समझना: पूरी प्रोसेस को समझने के लिए, Ambient API फ़्लो की समीक्षा करें. खास तौर पर, mediaSourcesSet के लिए पोलिंग करने वाले चरण की समीक्षा करें.

mediaSourcesSet के लिए पोल

किसी डिवाइस के लिए मीडिया आइटम की सूची बनाने से पहले, उपयोगकर्ता को Google Photos ऐप्लिकेशन में वे फ़ोटो चुननी होंगी जिन्हें उसे आपके ऐप्लिकेशन के साथ शेयर करना है. आपके ऐप्लिकेशन को डिवाइस से यह पता लगाना होगा कि यह विकल्प कब चुना गया था.

किसी खास deviceId के लिए, समय-समय पर devices.get तरीका कॉल करें. AmbientDevice जवाब में mediaSourcesSet फ़ील्ड को मॉनिटर करें. शुरुआत में, यह false होगा. जब उपयोगकर्ता मीडिया सोर्स चुन लेगा, तो यह फ़ील्ड true में बदल जाएगा.

AmbientDevice जवाब में pollingConfig के साथ एक pollInterval शामिल है. इसका इस्तेमाल, पोल की फ़्रीक्वेंसी के लिए दिशा-निर्देश के तौर पर किया जाना चाहिए.

मीडिया आइटम की सूची

जब किसी डिवाइस के लिए mediaSourcesSet की वैल्यू true हो जाती है, तो उपयोगकर्ता के चुने गए मीडिया आइटम फ़ेच किए जा सकते हैं.

  1. mediaItems.list एंडपॉइंट का इस्तेमाल करना: पाथ में deviceId डालकर, https://photosambient.googleapis.com/v1/mediaItems पर GET अनुरोध करें.

  2. पेजेशन को मैनेज करना (ज़रूरी होने पर): रिस्पॉन्स को पेजेशन किया जा सकता है. pageSize पैरामीटर का इस्तेमाल करके, दिखाए जाने वाले आइटम की ज़्यादा से ज़्यादा संख्या तय करें. साथ ही, नतीजों के अगले पेजों को देखने के लिए, पिछले रिस्पॉन्स से pageToken का इस्तेमाल करें.

  3. मीडिया आइटम प्रोसेस करना: जवाब में, AmbientMediaItem ऑब्जेक्ट का एक कलेक्शन होगा. इसमें हर ऑब्जेक्ट, चुने गए मीडिया आइटम को दिखाएगा. इन ऑब्जेक्ट में ये ज़रूरी जानकारी शामिल होती है:

    • id: मीडिया आइटम का यूनीक आइडेंटिफ़ायर.
    • creationTime: मीडिया आइटम बनाने का टाइमस्टैंप.
    • mediaFile: यह एक ऐसा ऑब्जेक्ट होता है जिसमें असल कॉन्टेंट को ऐक्सेस करने की जानकारी होती है.

mediaFile फ़ील्ड में baseUrl शामिल है. इस baseUrl का इस्तेमाल, मीडिया आइटम के कॉन्टेंट को अलग-अलग रिज़ॉल्यूशन या फ़ॉर्मैट में ऐक्सेस करने के लिए, यूआरएल बनाने के लिए किया जाएगा.

बेस यूआरएल

Google Photos API में मौजूद बेस यूआरएल, मीडिया आइटम के रॉ बाइट का ऐक्सेस देते हैं. इससे आपके ऐप्लिकेशन को उन्हें डाउनलोड या दिखाने में मदद मिलती है. ये यूआरएल, एल्बम की सूची (Library API) या मीडिया आइटम (Library और Picker, दोनों API) को ऐक्सेस करते समय जवाबों में शामिल किए जाते हैं. याद रखें कि बेस यूआरएल के सही तरीके से काम करने के लिए, उनमें अतिरिक्त पैरामीटर की ज़रूरत होती है.

Picker API के लिए:

सभी PickedMediaItem.mediaFile ऑब्जेक्ट में एक baseUrl शामिल होता है.

बेस यूआरएल 60 मिनट तक चालू रहते हैं. हालांकि, अगर उपयोगकर्ता अपने Google खाते की सेटिंग में जाकर, आपके ऐप्लिकेशन की अनुमतियां रद्द कर देता है, तो इनकी समयसीमा खत्म हो सकती है.

Library API के लिए:

बेस यूआरएल 60 मिनट तक चालू रहते हैं.

अलग-अलग बेस यूआरएल ये हैं:

  • baseUrl: सीधे किसी फ़ोटो या वीडियो के थंबनेल को ऐक्सेस करें या वीडियो के बाइट डाउनलोड करें.
  • coverPhotoBaseUrl: एल्बम की कवर फ़ोटो को सीधे ऐक्सेस करें.
  • profilePictureBaseUrl: mediaItem के मालिक की प्रोफ़ाइल फ़ोटो को सीधे ऐक्सेस करें.

इमेज के बेस यूआरएल

यहां उन विकल्पों की सूची दी गई है जिनका इस्तेमाल इमेज के बेस यूआरएल के साथ किया जा सकता है:

पैरामीटर
w, h

ब्यौरा

चौड़ाई, w और ऊंचाई, h पैरामीटर.

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

उदाहरण:

base-url=wmax-width-hmax-height

यहां ऐसे मीडिया आइटम को दिखाने का उदाहरण दिया गया है जिसकी चौड़ाई 2048 पिक्सल और ऊंचाई 1024 पिक्सल से ज़्यादा नहीं होनी चाहिए:

https://lh3.googleusercontent.com/p/AF....VnnY=w2048-h1024
c

ब्यौरा

फ़ोटो का काटा गया हिस्सा, c पैरामीटर.

अगर आपको इमेज को अपनी तय की गई चौड़ाई और लंबाई के डाइमेंशन में काटना है, तो बेस यूआरएल को ज़रूरी w और h पैरामीटर के साथ-साथ वैकल्पिक -c पैरामीटर के साथ जोड़ें.

साइज़ (पिक्सल में), [1, 16383] की रेंज में होना चाहिए. अगर इमेज की चौड़ाई या ऊंचाई, अनुरोध किए गए साइज़ से ज़्यादा है, तो इमेज को आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) बनाए रखते हुए, छोटा और काटा जाता है.

उदाहरण:

base-url=wmax-width-hmax-height-c

इस उदाहरण में, ऐप्लिकेशन ऐसा मीडिया आइटम दिखाता है जो बिल्कुल 256 पिक्सल चौड़ा और 256 पिक्सल ऊंचा होता है. जैसे, कोई थिंबनेल:

https://lh3.googleusercontent.com/p/AF....VnnY=w256-h256-c
d

ब्यौरा

डाउनलोड, d पैरामीटर.

अगर आपको जगह की जानकारी वाले मेटाडेटा को छोड़कर, इमेज का सारा Exif मेटाडेटा बरकरार रखते हुए उसे डाउनलोड करना है, तो बेस यूआरएल को d पैरामीटर के साथ जोड़ें.

उदाहरण:

base-url=d

इस उदाहरण में, ऐप्लिकेशन जगह की जानकारी वाले मेटाडेटा को छोड़कर, सभी मेटाडेटा के साथ इमेज डाउनलोड करता है:

https://lh3.googleusercontent.com/p/Az....XabC=d

वीडियो के बेस यूआरएल

यहां उन विकल्पों की सूची दी गई है जिनका इस्तेमाल वीडियो के बेस यूआरएल के साथ किया जा सकता है:

पैरामीटर
dv

ब्यौरा

किसी वीडियो mediaItem के बाइट ऐक्सेस करने के लिए, baseUrl को डाउनलोड किए गए वीडियो dv पैरामीटर के साथ जोड़ें.

dv पैरामीटर, ओरिजनल वीडियो के अच्छी क्वालिटी वाले ट्रांसकोड किए गए वर्शन का अनुरोध करता है. यह पैरामीटर, w और h पैरामीटर के साथ काम नहीं करता.

वीडियो डाउनलोड करने के लिए बेस यूआरएल से, बिट भेजने में कुछ सेकंड लग सकते हैं.

इस पैरामीटर का इस्तेमाल करने से पहले, देख लें कि मीडिया आइटम का mediaMetadata.status फ़ील्ड READY हो. अगर आपका मीडिया आइटम प्रोसेस नहीं हो पाया है, तो आपको गड़बड़ी का मैसेज मिल सकता है.

उदाहरण:

base-url=dv

यहां दिए गए उदाहरण में, किसी वीडियो के बाइट डाउनलोड करने का तरीका बताया गया है:

https://lh3.googleusercontent.com/p/AF....BsdZ=dv
w, h, c, और d

ब्यौरा

वीडियो का थंबनेल ऐक्सेस करने के लिए, इमेज बेस यूआरएल पैरामीटर में से किसी का भी इस्तेमाल करें.

डिफ़ॉल्ट रूप से, सभी वीडियो थंबनेल में वीडियो चलाने के बटन का ओवरले शामिल होता है. इस ओवरले को हटाने के लिए, -no पैरामीटर देखें.

उदाहरण:

उदाहरणों के लिए, इमेज के बेस यूआरएल की टेबल देखें.

no

ब्यौरा

थंबनेल ओवरले हटाएं, no पैरामीटर.

अगर आपको वीडियो का थंबनेल, वीडियो चलाने के बटन के ओवरले के बिना पाना है, तो बेस यूआरएल को no पैरामीटर के साथ जोड़ें.

no पैरामीटर का इस्तेमाल, कम से कम एक इमेज के बेस यूआरएल पैरामीटर के साथ किया जाना चाहिए.

उदाहरण:

base-url=wmax-width-hmax-height-no

इस उदाहरण में, वीडियो का ऐसा थंबनेल दिखाया गया है जिसकी चौड़ाई 1280 पिक्सल और ऊंचाई 720 पिक्सल है. साथ ही, इसमें वीडियो चलाने के बटन का ओवरले नहीं है:

https://lh3.googleusercontent.com/p/AF....VnnY=w1280-h720-no

मोशन फ़ोटो के बेस यूआरएल

मोशन फ़ोटो में फ़ोटो और वीडियो, दोनों एलिमेंट होते हैं. मोशन फ़ोटो baseUrl के अनुरोधों के लिए, इमेज बेस यूआरएल या वीडियो बेस यूआरएल में से किसी एक के पैरामीटर का इस्तेमाल किया जा सकता है.

पैरामीटर
dv

ब्यौरा

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

w, h, c, और d

ब्यौरा

मोशन फ़ोटो मीडिया आइटम का फ़ोटो एलिमेंट पाने के लिए, इमेज के बेस यूआरएल के फ़ॉर्मैट का इस्तेमाल करें.

अगले चरण

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