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.

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ę.
Przydatne linki
- Media Developer Center
ExoPlayer
dokumenty- Przewodnik po migracji
- AndroidX Media3 na GitHubie
- Przykładowa aplikacja do sesji media3
- Uniwersalny odtwarzacz muzyczny na Androida – przykładowa aplikacja