Введение в Jetpack Media3

Jetpack Media3 — это новый дом для медиабиблиотек, который позволяет приложениям Android отображать богатые аудио и визуальные возможности. Media3 предлагает простую архитектуру с широкими возможностями настройки, надежности и оптимизации, основанную на возможностях устройства, что позволяет абстрагироваться от сложностей, связанных с фрагментацией.

В этом документе представлено введение в ключевые API-интерфейсы для реализации вариантов использования воспроизведения и редактирования с помощью Media3.

Компоненты воспроизведения

Media3 предлагает несколько ключевых компонентов для вариантов использования воспроизведения. Классы, составляющие эти компоненты, будут вам знакомы, если вы работали с предыдущими медиабиблиотеками Android.

На следующей диаграмме показано, как эти компоненты объединяются в типичном приложении.

Различные компоненты мультимедийного приложения, использующего Media3, соединяются между собой несколькими простыми способами благодаря совместному использованию интерфейсов и классов.
Рисунок 1. Компоненты медиа-приложения.

Медиаплеер

Медиаплеер — это компонент вашего приложения, который позволяет воспроизводить медиафайлы. В Media3 вы найдете:

Сорт Описание Примечание по реализации
Player Player — это интерфейс, определяющий традиционные возможности медиаплеера высокого уровня, такие как возможность воспроизведения, паузы и поиска. В Media3 интерфейс Player представляет собой общий API, реализованный или используемый несколькими компонентами, включая, например, MediaSession и MediaController .
ExoPlayer ExoPlayer — это реализация интерфейса Player по умолчанию в Media3.

Узнайте больше о Media3 ExoPlayer

Медиа-сессия

Медиа-сессия обеспечивает универсальный способ взаимодействия с медиаплеером. Это позволяет приложению рекламировать воспроизведение мультимедиа внешним источникам и получать запросы на управление воспроизведением от внешних источников. В Media3 вы найдете:

Сорт Описание Примечание по реализации
MediaSession Медиа-сеансы позволяют вашему приложению взаимодействовать с аудио- или видеоплеером. Они объявляют воспроизведение мультимедиа извне и получают команды воспроизведения из внешних источников. В Media3 для MediaSession требуется Player для выполнения команд и получения текущего состояния.
MediaSessionService MediaSessionService хранит сеанс мультимедиа и связанный с ним проигрыватель в службе, отдельной от основного Activity вашего приложения, для облегчения фонового воспроизведения.
MediaController Класс MediaController обычно используется для отправки команд извне вашего приложения, например из других приложений или самой системы. Команды отправляются базовому Player связанного MediaSession . Класс MediaController реализует интерфейс Player , но при вызове метода команда отправляется в подключенный MediaSession . Клиентские приложения, такие как Google Assistant, могут использовать MediaController для управления воспроизведением в подключенном сеансе.
MediaLibraryService MediaLibraryService похож на MediaSessionService , за исключением того, что он включает дополнительные API, позволяющие предоставлять библиотеку контента клиентским приложениям.
MediaBrowser Класс MediaBrowser позволяет пользователю перемещаться по библиотеке контента мультимедийного приложения и выбирать элементы для воспроизведения. Класс MediaBrowser реализует интерфейсы MediaController и Player . Подобно MediaController , клиентские приложения, такие как Android Auto, обычно реализуют MediaBrowser .

Узнайте больше о Media3 MediaSession

Компоненты пользовательского интерфейса

Media3 предоставляет компоненты пользовательского интерфейса по умолчанию для просмотра видео и управления воспроизведением.

Сорт Описание Примечание по реализации
PlayerView View по умолчанию для отображения видео и элементов управления воспроизведением. Подключается к ExoPlayer , MediaController или любому другому пользовательскому Player .

Узнайте больше о пользовательском интерфейсе Media3

Редактирование компонентов

Media3 включает API-интерфейсы Transformer для сценариев использования мультимедиа, в том числе:

  • Обработка аудио и видео, например добавление фильтров и эффектов.
  • Обработка специальных форматов, таких как HDR-видео и замедленное видео.
  • Композиция, например объединение нескольких входных файлов.
  • Экспорт окончательного результата в файл
Сорт Описание Примечание по реализации
Transformer Используйте класс Transformer для запуска и остановки преобразований, а также для проверки обновлений хода выполнения текущего преобразования.
Effects Объект Effects — это набор аудио- и видеоэффектов, которые можно применить к элементу мультимедиа.
EditedMediaItem EditedMediaItem представляет элемент мультимедиа для обработки и изменения, которые к нему применяются. Вы можете использовать ExoPlayer для предварительного просмотра эффектов, добавленных к элементу мультимедиа, перед началом процесса экспорта.

Узнайте больше о Media3 Transformer

Вступительное видео

Посмотрите видео ниже, чтобы узнать о Media3 от инженеров, создавших его.