После того как пользователь настроит свое устройство и выберет источники мультимедиа в Google Фото, ваше приложение сможет отобразить список и получить доступ к этим медиафайлам для показа.
Прежде чем начать
- Проверка настроек устройства: Убедитесь, что вы успешно создали и настроили устройство для пользователя.
- Разберитесь в работе Ambient API: изучите схему работы Ambient API , чтобы понять общий процесс, особенно этап, связанный с опросом набора
mediaSourcesSet).
Опрос для mediaSourcesSet
Прежде чем вы сможете отобразить медиафайлы на устройстве, пользователь должен выбрать фотографии, которыми он хочет поделиться с вашим приложением в Google Фото. Ваше приложение должно запрашивать информацию у устройства, чтобы определить, когда этот выбор был сделан.
Периодически вызывайте метод 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 Фото предоставляют доступ к исходным байтам медиафайлов, позволяя вашему приложению загружать или отображать их. Эти URL-адреса включаются в ответы при отображении списка альбомов (API библиотеки) или доступе к медиафайлам (API библиотеки и выбора). Помните, что для корректной работы базовых 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-адреса баз данных видеофотографий
Видеофотографии содержат как фото-, так и видеоэлементы. Для запросов baseUrl видеофотографии можно использовать параметры из базовых URL-адресов изображений или видео .
| Параметр | |
|---|---|
dv | Описание Для получения видеоэлемента из видеофайла используйте параметр |
w , h , c и d | Описание Для получения фотоэлемента из видеофайла используйте формат URL-адресов, определяющий местоположение изображения . |
Политика и фильтрация контента
В Google Photos по умолчанию применяется стандартная фильтрация контента для изображений и видео, отображаемых на общедоступных устройствах, таких как телевизор или цифровой дисплей. Этот фильтр предназначен для оптимизации просмотра путем исключения такого контента, как:
- Функциональные изображения (например, скриншоты, документы, чеки).
- Изображения, которые могут плохо отображаться на большом экране (например, очень низкое разрешение, размытие, чрезмерная зернистость).
- Контент, обозначенный как сугубо личный или конфиденциальный, может не предназначаться для общего просмотра в общедоступных средах.
Вся фильтрация контента автоматизирована. Чтобы предоставить пользователям больше контроля над отображаемым контентом, вы можете разрешить им вручную выбирать и обновлять источники мультимедиа, используемые для фонового отображения.
Следующие шаги
- Пример приложения: Наш пример приложения включает в себя демонстрацию отображения и получения медиафайлов. Для получения дополнительной информации ознакомьтесь с функциями
checkMediaSourcesSetиfetch_media_item_list. - Справочная документация: Для получения подробной информации обо всех доступных методах, параметрах запроса и ответа, а также кодах ошибок ознакомьтесь с исчерпывающей справочной документацией по медиафайлам .