После того как пользователь настроил свое внешнее устройство и выбрал источники мультимедиа в Google Фото, ваше приложение может составить список и извлечь эти элементы мультимедиа для отображения.
Прежде чем начать
- Проверьте настройку устройства: убедитесь, что вы успешно создали и настроили устройство для пользователя.
- Изучите поток Ambient API: ознакомьтесь с потоком Ambient API, чтобы понять весь процесс, особенно этап, включающий опрос
mediaSourcesSet.
Опрос для mediaSourcesSet
Прежде чем вы сможете перечислить элементы мультимедиа для устройства, пользователь должен выбрать фотографии, которыми он хочет поделиться с вашим приложением в приложении Google Photos. Ваше приложение должно опросить устройство, чтобы определить, когда был сделан этот выбор.
Периодически вызывайте метод devices.get для конкретного deviceId . Контролируйте поле mediaSourcesSet в ответе AmbientDevice . Изначально оно будет false . После того, как пользователь успешно выбрал источники мультимедиа, это поле изменится на true .
Ответ AmbientDevice включает pollingConfig с pollInterval , который следует использовать в качестве ориентира для частоты опроса.
Список медиа-элементов
Как только mediaSourcesSet для устройства станет true , можно начинать извлекать выбранные пользователем элементы мультимедиа.
Используйте конечную точку
mediaItems.list: отправьте запрос GET наhttps://photosambient.googleapis.com/v1/mediaItems, указавdeviceIdв пути.Обработка пагинации (при необходимости): ответ может быть разбит на страницы. Используйте параметр
pageSize, чтобы указать максимальное количество возвращаемых элементов, иpageTokenиз предыдущего ответа, чтобы получить последующие страницы результатов.Обработка медиа-элементов: Ответ будет содержать массив объектов
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 | Описание Параметры ширины Чтобы получить доступ к элементу изображения-медиа, например, фотографии или миниатюре видео, необходимо указать размеры, которые вы планируете отображать в своем приложении (чтобы изображение можно было масштабировать до этих размеров, сохраняя соотношение сторон). Для этого объедините базовый URL с требуемыми размерами, как показано в примерах. Примеры: base-url=wmax-width-hmax-height Вот пример отображения медиа-элемента размером не более 2048 пикселей и не более 1024 пикселей: https://lh3.googleusercontent.com/p/AF....VnnY=w2048-h1024 |
c | Описание Параметр урожая Если вы хотите обрезать изображение до указанных вами размеров ширины и высоты, объедините базовый URL-адрес с необязательным параметром Размер (в пикселях) должен быть в диапазоне [1, 16383]. Если ширина или высота изображения превышает запрошенный размер, изображение уменьшается и обрезается (с сохранением соотношения сторон). Примеры: base-url=wmax-width-hmax-height-c В этом примере приложение отображает медиа-элемент размером ровно 256 пикселей в ширину и 256 пикселей в высоту, например миниатюру: https://lh3.googleusercontent.com/p/AF....VnnY=w256-h256-c |
d | Описание Параметр загрузки Если вы хотите загрузить изображение, сохранив все метаданные Exif, за исключением метаданных местоположения, объедините базовый URL с параметром Примеры: base-url=d В этом примере приложение загружает изображение со всеми метаданными, за исключением метаданных местоположения: https://lh3.googleusercontent.com/p/Az....XabC=d |
URL-адреса видеобазы
Вот список опций, которые вы можете использовать с базовыми URL-адресами видео:
| Параметр | |
|---|---|
dv | Описание Чтобы получить доступ к байтам видео Параметр dv запрашивает высококачественную, транскодированную версию исходного видео. Параметр несовместим с параметрами w и h . Базовые URL-адреса для загрузки видео могут возвращать байты в течение нескольких секунд. Перед использованием этого параметра проверьте, что поле Примеры: base-url=dv В следующем примере показано, как загрузить байты видео: https://lh3.googleusercontent.com/p/AF....BsdZ=dv |
w , h , c и d | Описание Для доступа к миниатюре видео используйте любой из параметров базового URL-адреса изображения . По умолчанию все миниатюры видео включают наложение кнопки воспроизведения. См. параметр -no , чтобы удалить это наложение. Примеры: Примеры см. в таблице базовых URL-адресов изображений . |
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 | Описание Чтобы получить элемент видео из элемента мультимедиа с движущимися фотографиями, используйте параметр |
w , h , c и d | Описание Чтобы получить элемент фотографии из медиаобъекта с движущимся изображением, используйте формат для базовых URL-адресов изображений . |
Следующие шаги
- Пример приложения: Наш пример приложения включает пример перечисления и извлечения элементов мультимедиа. Ознакомьтесь с функциями
checkMediaSourcesSetиfetch_media_item_listдля получения дополнительной информации. - Справочная документация: ознакомьтесь с подробной справочной документацией по элементам мультимедиа для получения подробной информации обо всех доступных методах, параметрах запросов и ответов, а также кодах ошибок.