Получение списка и получение медиа-элементов

После того как пользователь настроил свое внешнее устройство и выбрал источники мультимедиа в Google Фото, ваше приложение может составить список и извлечь эти элементы мультимедиа для отображения.

Прежде чем начать

Опрос для mediaSourcesSet

Прежде чем вы сможете перечислить элементы мультимедиа для устройства, пользователь должен выбрать фотографии, которыми он хочет поделиться с вашим приложением в приложении Google Photos. Ваше приложение должно опросить устройство, чтобы определить, когда был сделан этот выбор.

Периодически вызывайте метод devices.get для конкретного deviceId . Контролируйте поле mediaSourcesSet в ответе AmbientDevice . Изначально оно будет false . После того, как пользователь успешно выбрал источники мультимедиа, это поле изменится на true .

Ответ AmbientDevice включает pollingConfig с pollInterval , который следует использовать в качестве ориентира для частоты опроса.

Список медиа-элементов

Как только mediaSourcesSet для устройства станет true , можно начинать извлекать выбранные пользователем элементы мультимедиа.

  1. Используйте конечную точку mediaItems.list : отправьте запрос GET на https://photosambient.googleapis.com/v1/mediaItems , указав deviceId в пути.

  2. Обработка пагинации (при необходимости): ответ может быть разбит на страницы. Используйте параметр pageSize , чтобы указать максимальное количество возвращаемых элементов, и pageToken из предыдущего ответа, чтобы получить последующие страницы результатов.

  3. Обработка медиа-элементов: Ответ будет содержать массив объектов AmbientMediaItem , каждый из которых представляет выбранный медиа-элемент. Эти объекты включают в себя важные детали, такие как:

    • id : уникальный идентификатор элемента мультимедиа.
    • creationTime : временная метка создания элемента мультимедиа.
    • mediaFile : объект, содержащий сведения для доступа к фактическому контенту.

Поле mediaFile включает baseUrl . Этот baseUrl вы будете использовать для построения URL-адресов для доступа к содержимому медиа-элемента в различных разрешениях или форматах.

Базовые URL-адреса

Базовые URL-адреса в API Google Photos предоставляют доступ к необработанным байтам медиа-элементов, позволяя вашему приложению загружать или отображать их. Эти URL-адреса включаются в ответы при перечислении альбомов (API Library) или доступе к медиа-элементам (API Library и Picker). Помните, что базовые URL-адреса требуют дополнительных параметров для корректной работы.

Для API выбора:

Все объекты PickedMediaItem.mediaFile включают baseUrl .

Базовые URL-адреса остаются активными в течение 60 минут, но могут истечь раньше, если пользователь отменит разрешения вашего приложения через настройки своего аккаунта Google.

Для API библиотеки:

Базовые URL-адреса остаются активными в течение 60 минут.

Различные базовые URL-адреса:

  • baseUrl : Прямой доступ к фотографии, миниатюре видео или загрузка байтов видео.
  • coverPhotoBaseUrl : прямой доступ к обложке альбома.
  • profilePictureBaseUrl : прямой доступ к фотографии профиля владельца mediaItem .

URL-адреса баз изображений

Вот список опций, которые можно использовать с базовыми URL-адресами изображений:

Параметр
w , h

Описание

Параметры ширины w и высоты h .

Чтобы получить доступ к элементу изображения-медиа, например, фотографии или миниатюре видео, необходимо указать размеры, которые вы планируете отображать в своем приложении (чтобы изображение можно было масштабировать до этих размеров, сохраняя соотношение сторон). Для этого объедините базовый URL с требуемыми размерами, как показано в примерах.

Примеры:

base-url=wmax-width-hmax-height

Вот пример отображения медиа-элемента размером не более 2048 пикселей и не более 1024 пикселей:

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

Описание

Параметр урожая c .

Если вы хотите обрезать изображение до указанных вами размеров ширины и высоты, объедините базовый URL-адрес с необязательным параметром -c и обязательными параметрами w и h .

Размер (в пикселях) должен быть в диапазоне [1, 16383]. Если ширина или высота изображения превышает запрошенный размер, изображение уменьшается и обрезается (с сохранением соотношения сторон).

Примеры:

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

В этом примере приложение отображает медиа-элемент размером ровно 256 пикселей в ширину и 256 пикселей в высоту, например миниатюру:

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

Описание

Параметр загрузки d .

Если вы хотите загрузить изображение, сохранив все метаданные Exif, за исключением метаданных местоположения, объедините базовый URL с параметром d .

Примеры:

base-url=d

В этом примере приложение загружает изображение со всеми метаданными, за исключением метаданных местоположения:

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

URL-адреса видеобазы

Вот список опций, которые вы можете использовать с базовыми URL-адресами видео:

Параметр
dv

Описание

Чтобы получить доступ к байтам видео mediaItem , объедините baseUrl с параметром загрузки видео dv .

Параметр dv запрашивает высококачественную, транскодированную версию исходного видео. Параметр несовместим с параметрами w и h .

Базовые URL-адреса для загрузки видео могут возвращать байты в течение нескольких секунд.

Перед использованием этого параметра проверьте, что поле mediaMetadata.status медиа-элементов имеет READY . В противном случае, если ваш медиа-элемент не завершил обработку, вы можете получить сообщение об ошибке.

Примеры:

base-url=dv

В следующем примере показано, как загрузить байты видео:

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

Описание

Для доступа к миниатюре видео используйте любой из параметров базового URL-адреса изображения .

По умолчанию все миниатюры видео включают наложение кнопки воспроизведения. См. параметр -no , чтобы удалить это наложение.

Примеры:

Примеры см. в таблице базовых URL-адресов изображений .

no

Описание

Удалить наложение миниатюр, no параметров.

Если вы хотите получить миниатюру видео без наложения кнопки воспроизведения, объедините базовый URL с параметром no .

Параметр no необходимо использовать хотя бы с одним из параметров URL-адреса базы изображения .

Примеры:

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

В следующем примере отображается миниатюра видео размером ровно 1280 пикселей в ширину и 720 пикселей в высоту, не включающая наложение кнопки воспроизведения:

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

URL-адреса базовых фотографий в движении

Фотографии движения содержат как фото, так и видеоэлементы. Вы можете использовать параметры из URL-адресов баз изображений или URL-адресов баз видео для запросов baseUrl фотографий движения.

Параметр
dv

Описание

Чтобы получить элемент видео из элемента мультимедиа с движущимися фотографиями, используйте параметр dv так же, как и для загрузки из базовых URL-адресов видео .

w , h , c и d

Описание

Чтобы получить элемент фотографии из медиаобъекта с движущимся изображением, используйте формат для базовых URL-адресов изображений .

Следующие шаги

  • Пример приложения: Наш пример приложения включает пример перечисления и извлечения элементов мультимедиа. Ознакомьтесь с функциями checkMediaSourcesSet и fetch_media_item_list для получения дополнительной информации.
  • Справочная документация: ознакомьтесь с подробной справочной документацией по элементам мультимедиа для получения подробной информации обо всех доступных методах, параметрах запросов и ответов, а также кодах ошибок.