Jetpack Media3 to nowe centrum bibliotek multimediów, które umożliwia aplikacjom na Androida wyświetlanie bogatych treści audio i wideo. Media3 oferuje prostą architekturę z dużymi możliwościami dostosowywania, niezawodnością i optymalizacjami w zależności od możliwości urządzeń, co pozwala eliminować złożoność, która wiąże się z fragmentacją.
Ten dokument zawiera wprowadzenie do kluczowych interfejsów API do implementowania odtwarzania i edytowania przypadków użycia w Media3.
Komponenty odtwarzania
Media3 obejmuje kilka kluczowych komponentów związanych z odtwarzaniem. Klasy tworzące te komponenty będą Ci znane, jeśli zdarzyło Ci się już pracować z wcześniejszymi bibliotekami multimediów na Androida.
Poniższy diagram przedstawia, jak te komponenty łączą się ze sobą w typowej aplikacji.
Odtwarzacz
Odtwarzacz to element aplikacji, który umożliwia odtwarzanie plików multimedialnych. Na stronie Media3 znajdziesz:
Zajęcia | Description | Uwagi o wdrażaniu |
---|---|---|
Player |
Player to interfejs określający tradycyjne ogólne funkcje odtwarzacza, takie jak odtwarzanie, wstrzymywanie i wyszukiwanie.
|
W Media3 interfejs Player to typowy interfejs API zaimplementowany lub używany przez kilka komponentów, w tym na przykład MediaSession i MediaController .
|
ExoPlayer |
ExoPlayer jest domyślną implementacją interfejsu Player w Media3.
|
Więcej informacji o Media3 ExoPlayer
Sesja multimediów
Sesja multimediów to uniwersalny sposób na interakcję z odtwarzaczem. Dzięki temu aplikacja może reklamować odtwarzanie multimediów w źródłach zewnętrznych i otrzymywać żądania sterowania odtwarzaniem ze źródeł zewnętrznych. Na stronie Media3 znajdziesz:
Zajęcia | Description | Uwagi o wdrażaniu |
---|---|---|
MediaSession |
Sesje multimediów umożliwiają aplikacji interakcję z odtwarzaczem audio lub wideo. Reklamują odtwarzanie multimediów na zewnątrz i otrzymują polecenia odtwarzania ze źródeł zewnętrznych. |
W Media3 MediaSession potrzebuje Player do wykonywania poleceń i uzyskiwania bieżącego stanu.
|
MediaSessionService |
Aby umożliwić odtwarzanie w tle, MediaSessionService przechowuje sesję multimediów i powiązany z nią odtwarzacz w usłudze innej niż główny Activity aplikacji.
|
|
MediaController |
Klasa MediaController jest zwykle używana do wysyłania poleceń spoza aplikacji, na przykład z innych aplikacji lub samego systemu.
Polecenia są wysyłane do bazowego zasobu (Player ) powiązanego elementu MediaSession .
|
Klasa MediaController implementuje interfejs Player , ale podczas wywoływania metody polecenie jest wysyłane do połączonego z nim MediaSession . Aplikacje klienckie, takie jak Asystent Google, mogą używać MediaController do sterowania odtwarzaniem w połączonej sesji.
|
MediaLibraryService |
MediaLibraryService jest podobny do MediaSessionService , z tym że zawiera dodatkowe interfejsy API, dzięki którym możesz udostępniać swoją 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 interfejs MediaController i Player . Podobnie jak 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 do wyświetlania filmów i sterowania odtwarzaniem.
Zajęcia | Description | Uwagi o wdrażaniu |
---|---|---|
PlayerView |
Domyślny View do wyświetlania filmów i elementów sterujących odtwarzaniem.
|
Łączy się z ExoPlayer , MediaController lub dowolnym innym niestandardowym elementem Player .
|
Więcej informacji o interfejsie Media3
Edytowanie komponentów
Media3 obejmuje interfejsy Transformer API do edycji multimediów, w tym:
- przetwarzanie dźwięku i obrazu, np. dodawanie filtrów i efektów;
- obsługę formatów specjalnych, takich jak filmy HDR i filmy w zwolnionym tempie;
- kompozycji, na przykład łączenia kilku plików wejściowych.
- Eksportowanie gotowych danych wyjściowych do pliku
Zajęcia | Description | Uwagi o wdrażaniu |
---|---|---|
Transformer |
Klasa Transformer służy do uruchamiania i zatrzymywania przekształceń oraz do sprawdzania aktualizacji postępów w ich realizacji.
|
|
Effects |
Obiekt Effects to kolekcja efektów audio i wideo, które można zastosować do elementu multimedialnego.
|
|
EditedMediaItem |
EditedMediaItem reprezentuje element multimedialny, który ma zostać przetworzony, oraz zmiany, które mają być do niego zastosowane.
|
Za pomocą funkcji ExoPlayer możesz wyświetlić podgląd efektów dodanych do elementu multimedialnego przed rozpoczęciem procesu eksportowania.
|
Więcej informacji o Media3 Transformer
Film wprowadzający
Obejrzyj poniższy film, by poznać Media3 twórców, którzy ją stworzyli.
Przydatne linki
- Media Developer Center
ExoPlayer
dokumentów- Przewodnik po migracji
- AndroidX Media3 na GitHubie
- Przykładowa aplikacja do sesji multimediów Media3
- Przykładowa aplikacja Universal Android Music Player