Jetpack Media3은 Android 앱이 풍부한 오디오 및 시각적 환경을 표시할 수 있도록 하는 미디어 라이브러리의 새로운 공간입니다. Media3는 기기 기능을 기반으로 강력한 맞춤설정, 안정성, 최적화를 갖춘 간단한 아키텍처를 제공하여 단편화로 인한 복잡성을 추상화합니다.
이 문서에서는 Media3로 재생 및 편집 사용 사례를 구현하기 위한 주요 API를 소개합니다.
재생 구성요소
Media3는 재생 사용 사례를 위한 몇 가지 주요 구성요소를 제공합니다. 이전 Android 미디어 라이브러리를 사용해 본 적이 있다면 이러한 구성요소를 구성하는 클래스가 익숙할 것입니다.
다음 다이어그램은 이러한 구성요소가 일반적인 앱에서 어떻게 결합되는지 보여줍니다.

미디어 플레이어
미디어 플레이어는 미디어 파일 재생을 허용하는 앱의 구성요소입니다. Media3에는 다음이 포함됩니다.
클래스 | 설명 | 구현 참고사항 |
---|---|---|
Player |
Player 는 재생, 일시중지, 탐색과 같은 미디어 플레이어의 기존 고급 기능을 정의하는 인터페이스입니다.
|
Media3에서 Player 인터페이스는 MediaSession , MediaController 등 여러 구성요소에서 구현되거나 사용되는 공통 API입니다.
|
ExoPlayer |
ExoPlayer 는 Media3의 Player 인터페이스의 기본 구현입니다.
|
미디어 세션
미디어 세션은 미디어 플레이어와 상호작용할 보편적인 방법을 제공합니다. 이를 통해 앱은 외부 소스에 미디어 재생을 광고하고 외부 소스로부터 재생 제어 요청을 수신할 수 있습니다. Media3에는 다음이 포함됩니다.
클래스 | 설명 | 구현 참고사항 |
---|---|---|
MediaSession |
미디어 세션을 사용하면 앱이 오디오 또는 동영상 플레이어와 상호작용할 수 있습니다. 미디어 재생을 외부에 광고하고 외부 소스에서 재생 명령을 수신합니다. |
Media3에서 MediaSession 은 명령어를 실행하고 현재 상태를 가져오기 위해 Player 이 필요합니다.
|
MediaSessionService |
MediaSessionService 는 백그라운드 재생을 용이하게 하기 위해 앱의 기본 Activity 와 별도의 서비스에 미디어 세션과 연결된 플레이어를 보유합니다.
|
|
MediaController |
MediaController 클래스는 일반적으로 앱 외부(예: 다른 앱 또는 시스템 자체)에서 명령을 전송하는 데 사용됩니다.
명령어는 연결된 MediaSession 의 기본 Player 로 전송됩니다.
|
MediaController 클래스는 Player 인터페이스를 구현하지만 메서드를 호출할 때 MediaController 는 연결된 MediaSession 에 전송된 명령어를 전송합니다. Google 어시스턴트와 같은 클라이언트 앱은 MediaController 를 사용하여 연결된 세션에서 재생을 제어할 수 있습니다.
|
MediaLibraryService |
MediaLibraryService 는 MediaSessionService 와 유사하지만 클라이언트 앱에 콘텐츠 라이브러리를 제공할 수 있는 추가 API가 포함되어 있습니다.
|
|
MediaBrowser |
MediaBrowser 클래스를 사용하면 사용자가 미디어 앱의 콘텐츠 라이브러리를 탐색하고 재생할 항목을 선택할 수 있습니다.
|
MediaBrowser 클래스는 MediaController 및 Player 인터페이스를 모두 구현합니다. MediaController 와 마찬가지로 Android Auto와 같은 클라이언트 앱은 일반적으로 MediaBrowser 를 구현합니다.
|
UI 구성요소
Media3는 동영상을 보고 재생을 제어하기 위한 기본 UI 구성요소를 제공합니다.
클래스 | 설명 | 구현 참고사항 |
---|---|---|
PlayerView |
동영상 및 재생 컨트롤을 표시하는 기본 View 입니다.
|
ExoPlayer , MediaController 또는 기타 맞춤 Player 에 연결합니다.
|
구성요소 수정
Media3에는 다음과 같은 미디어 편집 사용 사례를 위한 Transformer API가 포함되어 있습니다.
- 필터 및 효과 추가와 같은 오디오 및 동영상 처리
- HDR 동영상, 슬로 모션 동영상과 같은 특수 형식 처리
- 여러 입력 파일 결합과 같은 컴포지션
- 최종 출력을 파일로 내보내기
클래스 | 설명 | 구현 참고사항 |
---|---|---|
Transformer |
Transformer 클래스를 사용하여 변환을 시작 및 중지하고 실행 중인 변환의 진행 상황 업데이트를 확인합니다.
|
|
Effects |
Effects 객체는 미디어 항목에 적용할 오디오 및 동영상 효과의 모음입니다.
|
|
EditedMediaItem |
EditedMediaItem 는 처리할 미디어 항목과 이에 적용할 수정사항을 나타냅니다.
|
내보내기 프로세스를 시작하기 전에 ExoPlayer 를 사용하여 미디어 항목에 추가된 효과를 미리 볼 수 있습니다.
|
소개 동영상
Media3를 개발한 엔지니어가 소개하는 Media3에 관한 동영상을 아래에서 확인하세요.