Wprowadzenie do Jetpack Media3

Jetpack Media3 to nowa biblioteka multimediów, która umożliwia aplikacjom na Androida wyświetlanie bogatych treści audiowizualnych. Media3 oferuje prostą architekturę z możliwością zaawansowanej personalizacji, niezawodności i optymalizacji na podstawie możliwości urządzenia, co pozwala uniknąć złożoności związanej z fragmentacją.

Ten dokument zawiera wprowadzenie do najważniejszych interfejsów API do implementowania przypadków użycia odtwarzania i edycji za pomocą Media3.

Komponenty odtwarzania

Media3 oferuje kilka kluczowych komponentów do odtwarzania. Jeśli korzystasz z wcześniejszych bibliotek multimediów Androida, klasy, z których składają się te komponenty, powinny być Ci znane.

Ten diagram pokazuje, jak te komponenty współpracują ze sobą w typowej aplikacji.

Różne komponenty aplikacji multimedialnej, która korzysta z Media3, są ze sobą połączone na kilka prostych sposobów dzięki współdzieleniu interfejsów i klas.
Rysunek 1. Komponenty aplikacji multimedialnej

Odtwarzacz

Odtwarzacz multimediów to komponent aplikacji, który umożliwia odtwarzanie plików multimedialnych. W Media3 znajdziesz:

Zajęcia Opis Uwaga dotycząca implementacji
Player Player to interfejs definiujący tradycyjne funkcje odtwarzacza multimediów na wysokim poziomie, takie jak odtwarzanie, wstrzymywanie i przewijanie. W Media3 interfejs Player to wspólny interfejs API, który jest implementowany lub używany przez kilka komponentów, takich jak MediaSession i MediaController.
ExoPlayer ExoPlayer to domyślna implementacja interfejsu Player w Media3.

Więcej informacji o Media3 ExoPlayer

Sesja multimediów

Sesja multimedialna zapewnia uniwersalny sposób interakcji z odtwarzaczem multimediów. Umożliwia to aplikacji reklamowanie odtwarzania multimediów w źródłach zewnętrznych i otrzymywanie żądań sterowania odtwarzaniem z tych źródeł. W Media3 znajdziesz:

Zajęcia Opis Uwaga dotycząca implementacji
MediaSession Sesje multimedialne umożliwiają aplikacji interakcję z odtwarzaczem audio lub wideo. Reklamują odtwarzanie multimediów na zewnątrz i odbierają polecenia odtwarzania ze źródeł zewnętrznych. W Media3 MediaSession potrzebuje Player do wykonywania poleceń i uzyskiwania bieżącego stanu.
MediaSessionService Usługa MediaSessionService przechowuje sesję multimediów i powiązany z nią odtwarzacz w usłudze oddzielonej od głównej Activity, aby umożliwić odtwarzanie w tle.
MediaController Klasa MediaController jest zwykle używana do wysyłania poleceń spoza aplikacji, na przykład z innych aplikacji lub z systemu. Polecenia są wysyłane do podstawowego Player powiązanego z MediaSession. Klasa MediaController implementuje interfejs Player, ale podczas wywoływania metody MediaController wysyła polecenie do połączonego obiektu MediaSession. Aplikacje klienckie, takie jak Asystent Google, mogą używać MediaController do sterowania odtwarzaniem w połączonej sesji.
MediaLibraryService MediaLibraryService jest podobny do MediaSessionService, ale zawiera dodatkowe interfejsy API, dzięki którym możesz udostępniać bibliotekę treści aplikacjom klienckim.
MediaBrowser Klasa MediaBrowser umożliwia użytkownikowi poruszanie się po bibliotece treści aplikacji multimedialnej i wybieranie elementów do odtworzenia. Klasa MediaBrowser implementuje interfejsy MediaController i Player. Podobnie jak w przypadku MediaController, aplikacje klienckie, takie jak Android Auto, zwykle implementują MediaBrowser.

Więcej informacji o Media3 MediaSession

Komponenty interfejsu

Media3 udostępnia domyślne komponenty interfejsu użytkownika do wyświetlania filmów i sterowania odtwarzaniem.

Zajęcia Opis Uwaga dotycząca implementacji
PlayerView Domyślny View, aby wyświetlić film i elementy sterujące odtwarzaniem. łączy się z ExoPlayer, MediaController lub dowolnym innym niestandardowym Player;

Więcej informacji o interfejsie Media3

Edytowanie komponentów

Media3 zawiera interfejsy Transformer API do edycji multimediów, w tym:

  • przetwarzanie dźwięku i obrazu, np. dodawanie filtrów i efektów;
  • obsługa formatów specjalnych, takich jak filmy HDR i filmy w zwolnionym tempie;
  • kompozycja, np. łączenie wielu plików wejściowych;
  • Eksportowanie końcowego wyjścia do pliku
Zajęcia Opis Uwaga dotycząca implementacji
Transformer Używaj klasy Transformer do uruchamiania i zatrzymywania przekształceń oraz sprawdzania postępu bieżącego przekształcenia.
Effects Obiekt Effects to zbiór efektów dźwiękowych i wideo, które można zastosować do zasobu multimedialnego.
EditedMediaItem Element EditedMediaItem reprezentuje element multimedialny do przetworzenia oraz zmiany, które mają zostać w nim zastosowane. Przed rozpoczęciem procesu eksportowania możesz użyć opcji ExoPlayer, aby wyświetlić podgląd efektów dodanych do elementu multimedialnego.

Więcej informacji o Media3Transformer

Film z wprowadzeniem

W poniższym filmie inżynierowie, którzy stworzyli Media3, przedstawiają tę usługę.