Elenca e recupera gli elementi multimediali

Una volta che un utente ha configurato il proprio dispositivo Ambient e selezionato le sorgenti multimediali in Google Foto, la tua applicazione può elencare e recuperare gli elementi multimediali da visualizzare.

Prima di iniziare

  • Verifica la configurazione del dispositivo: assicurati di aver creato e configurato un dispositivo per l'utente.
  • Comprendi il flusso dell'API Ambient: consulta il flusso dell'API Ambient per comprendere la procedura complessiva, in particolare il passaggio che prevede il polling per mediaSourcesSet.

Sondaggio per mediaSourcesSet

Prima di poter elencare gli elementi multimediali di un dispositivo, l'utente deve aver selezionato le foto che vuole condividere con la tua applicazione all'interno dell'app Google Foto. La tua applicazione deve eseguire il polling del dispositivo per determinare quando è stata effettuata questa selezione.

Chiama periodicamente il metodo devices.get per l'deviceId specifico. Monitora il campo mediaSourcesSet nella risposta AmbientDevice. Inizialmente sarà false. Una volta che l'utente ha selezionato correttamente le origini multimediali, questo campo diventa true.

La risposta AmbientDevice include un pollingConfig con un pollInterval da utilizzare come linea guida per la frequenza di polling.

Elenco elementi multimediali

Una volta che mediaSourcesSet è true per un dispositivo, puoi iniziare a recuperare gli elementi media selezionati dall'utente.

  1. Utilizza l'endpoint mediaItems.list: invia una richiesta GET a https://photosambient.googleapis.com/v1/mediaItems, indicando deviceId nel percorso.

  2. Gestisci la paginazione (se necessario): la risposta potrebbe essere suddivisa in pagine. Utilizza il parametro pageSize per specificare il numero massimo di elementi da restituire e pageToken di una risposta precedente per recuperare le pagine successive dei risultati.

  3. Elabora gli elementi multimediali:la risposta conterrà un array di oggetti AmbientMediaItem, ciascuno dei quali rappresenta un elemento multimediale selezionato. Questi oggetti includono dettagli essenziali come:

    • id: l'identificatore univoco dell'elemento multimediale.
    • creationTime: il timestamp della creazione dell'elemento multimediale.
    • mediaFile: un oggetto contenente i dettagli per accedere ai contenuti effettivi.

Il campo mediaFile include baseUrl. Questo baseUrl è ciò che utilizzerai per creare gli URL per accedere ai contenuti dell'elemento multimediale in varie risoluzioni o formati.

URL di base

Gli URL di base nelle API di Google Foto forniscono l'accesso ai byte non elaborati degli elementi multimediali, consentendo alla tua app di scaricarli o visualizzarli. Questi URL sono inclusi nelle risposte quando vengono elencati gli album (API Library) o si accede agli elementi multimediali (API Library e Picker). Ricorda che gli URL di base richiedono parametri aggiuntivi per funzionare correttamente.

Per l'API Picker:

Tutti gli oggetti PickedMediaItem.mediaFile includono un baseUrl.

Gli URL di base rimangono attivi per 60 minuti, ma possono scadere prima se l'utente revoca le autorizzazioni della tua app tramite le impostazioni del suo Account Google.

Per l'API Library:

Gli URL di base rimangono attivi per 60 minuti.

I vari URL di base sono:

  • baseUrl: accedi direttamente a una foto, a una miniatura di un video o scarica i dati video.
  • coverPhotoBaseUrl: accedi direttamente alla foto di copertina dell'album.
  • profilePictureBaseUrl: accedi direttamente alla foto del profilo del proprietario di un mediaItem.

URL di base delle immagini

Di seguito è riportato l'elenco delle opzioni che puoi utilizzare con gli URL di base delle immagini:

Parametro
w, h

Descrizione

I parametri larghezza, w e altezza, h.

Per accedere a un elemento multimediale immagine, ad esempio una foto o una miniatura per un video, devi specificare le dimensioni che prevedi di visualizzare nella tua applicazione (in modo che l'immagine possa essere ridimensionata in queste dimensioni mantenendo le proporzioni). Per farlo, concatena l'URL base con le dimensioni richieste come mostrato negli esempi.

Esempi:

base-url=wmax-width-hmax-height

Ecco un esempio per visualizzare un elemento multimediale non più largo di 2048 px e non più alto di 1024 px:

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

Descrizione

Il parametro di ritaglio c.

Se vuoi ritagliare l'immagine in base alle dimensioni esatti di larghezza e altezza che hai specificato, concatena l'URL di base con il parametro facoltativo -c e i parametri obbligatori w e h.

Le dimensioni (in pixel) devono essere comprese nell'intervallo [1, 16383]. Se la larghezza o l'altezza dell'immagine supera le dimensioni richieste, l'immagine viene ridotta e ritagliata (mantenendo le proporzioni).

Esempi:

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

In questo esempio, l'applicazione mostra un elemento multimediale di esattamente 256 x 256 px, ad esempio una miniatura:

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

Descrizione

Il parametro download, d.

Se vuoi scaricare l'immagine mantenendo tutti i metadati Exif tranne i metadati della posizione, concatena l'URL di base con il parammetro d.

Esempi:

base-url=d

In questo esempio, l'applicazione scarica un'immagine con tutti i metadati tranne i metadati sulla posizione:

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

URL di base dei video

Di seguito è riportato l'elenco delle opzioni che puoi utilizzare con gli URL di base dei video:

Parametro
dv

Descrizione

Per accedere ai byte di un video mediaItem, concatena il baseUrl con il parametro dv per scaricare il video.

Il parametro dv richiede una versione transcodificata di alta qualità del video originale. Il parametro non è compatibile con i parametri w e h.

Per restituire i byte, gli URL di base per i download dei video possono richiedere fino a qualche secondo.

Prima di utilizzare questo parametro, controlla che il campo mediaMetadata.status degli elementi multimediali sia READY. In caso contrario, se l'elaborazione dell'elemento multimediale non è stata completata, potresti ricevere un messaggio di errore.

Esempi:

base-url=dv

L'esempio seguente mostra come scaricare i byte di un video:

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

Descrizione

Per accedere alla miniatura del video, utilizza uno dei parametri dell'URL di base dell'immagine.

Per impostazione predefinita, tutte le miniature dei video includono un overlay di un pulsante di riproduzione. Consulta il parametro -no per rimuovere questo overlay.

Esempi:

Per esempi, consulta la tabella degli URL di base delle immagini.

no

Descrizione

Il parametro no per rimuovere l'overlay della miniatura.

Se vuoi recuperare la miniatura di un video senza l'overlay di un pulsante di riproduzione, concatena l'URL di base con il parametro no.

Il parametro no deve essere utilizzato con almeno uno dei parametri URL immagine di base.

Esempi:

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

L'esempio seguente mostra una miniatura di video di esattamente 1280 x 720 px e non include un overlay del pulsante di riproduzione:

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

URL di base delle foto in movimento

Le foto in movimento contengono elementi sia fotografici che video. Puoi utilizzare i parametri degli URL di base delle immagini o degli URL di base dei video per le richieste di foto in movimento baseUrl.

Parametro
dv

Descrizione

Per recuperare l'elemento video di un elemento multimediale di una foto in movimento, utilizza il parametro dv come faresti per scaricare gli URL di base dei video.

w, h, c e d

Descrizione

Per recuperare l'elemento foto di un elemento multimediale di foto in movimento, utilizza il formato per gli URL di base delle immagini.

Passaggi successivi

  • Applicazione di esempio: la nostra applicazione di esempio include un esempio di elencazione e recupero di elementi multimediali. Per ulteriori informazioni, consulta le funzioni checkMediaSourcesSet e fetch_media_item_list.
  • Documentazione di riferimento:consulta le documentazione di riferimento complete sugli elementi multimediali per informazioni dettagliate su tutti i metodi, i parametri di richiesta e risposta e i codici di errore disponibili.