반응형
Jetpack Media3는 Android의 새로운 멀티미디어 라이브러리로, 기존의 MediaSession과 Media2 라이브러리의 후속 버전입니다. 이 라이브러리는 오디오 및 비디오 재생과 같은 멀티미디어 앱을 만들 때 사용됩니다. Media3는 코틀린을 기반으로 하고 있으며, 현대적인 안드로이드 개발 패턴과 잘 통합됩니다.
주요 기능
MediaSession 및 MediaController: 재생 상태 및 컨트롤을 캡슐화합니다.
MediaItem: 미디어 콘텐츠를 표현합니다.
Player: 실제 미디어 재생을 담당합니다.
기본 사용방법
최신버전으로 넣기
dependencies {
implementation "androidx.media3:media3-session:1.2.0"
implementation "androidx.media3:media3-exoplayer:1.2.0"
}
import androidx.media3.common.MediaItem
import androidx.media3.exoplayer.ExoPlayer
import androidx.media3.session.MediaSession
class MyPlayerService : Service() {
private lateinit var mediaSession: MediaSession
private lateinit var player: ExoPlayer
override fun onCreate() {
super.onCreate()
// Player 초기화
player = ExoPlayer.Builder(this).build()
// MediaSession 초기화
mediaSession = MediaSession.Builder(this, player)
.setSessionActivity(PendingIntent.getActivity(this, 0, Intent(this, MainActivity::class.java), 0))
.build()
// 예시로 하나의 미디어 아이템을 준비
val mediaItem = MediaItem.fromUri("https://example.com/audio.mp3")
player.setMediaItem(mediaItem)
player.prepare()
}
override fun onDestroy() {
super.onDestroy()
mediaSession.release()
player.release()
}
}
import androidx.media3.session.MediaController
class MainActivity : AppCompatActivity() {
private lateinit var mediaController: MediaController
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// MediaController 초기화
mediaController = MediaController.Builder(this)
.setSessionCompatToken(MediaSessionCompat.Token.fromBundle(bundleOf("token" to "your_token_here")))
.build()
// 재생, 일시정지 등의 조작
playButton.setOnClickListener {
mediaController.play()
}
pauseButton.setOnClickListener {
mediaController.pause()
}
}
}
더 다양한 기능은 공식문서를 참고하면 된다!
반응형
'Android' 카테고리의 다른 글
Kotlin 최대공약수 최소공배수 구하기 (0) | 2023.11.14 |
---|---|
Android WorkManager Example 안정적인 작업 처리하기 (0) | 2023.11.08 |
LiveData와 Flow 어떤 걸 써야할까? (0) | 2023.09.29 |
Git & Github 간단한 사용방법 정리 + 브랜치 만드는 이유 (0) | 2023.08.02 |
ExoPlayer clip media (0) | 2023.08.01 |
댓글