Jetpack Media3 — это новый дом для медиабиблиотек, который позволяет приложениям Android отображать богатые аудио и визуальные возможности. Media3 предлагает простую архитектуру с широкими возможностями настройки, надежности и оптимизации, основанную на возможностях устройства, что позволяет абстрагироваться от сложностей, связанных с фрагментацией.
В этом документе представлено введение в ключевые API-интерфейсы для реализации вариантов использования воспроизведения и редактирования с помощью Media3.
Компоненты воспроизведения
Media3 предлагает несколько ключевых компонентов для вариантов использования воспроизведения. Классы, составляющие эти компоненты, будут вам знакомы, если вы работали с предыдущими медиабиблиотеками Android.
На следующей диаграмме показано, как эти компоненты объединяются в типичном приложении.
Медиаплеер
Медиаплеер — это компонент вашего приложения, который позволяет воспроизводить медиафайлы. В 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 от инженеров, создавших его.
Полезные ссылки
- Центр медиа-разработчиков
- Документация
ExoPlayer
- Руководство по миграции
- AndroidX Media3 на GitHub
- Пример приложения медиа-сеанса Media3
- Пример приложения универсального музыкального проигрывателя Android