#"MediaPlayer"란?
MediaPlayer 클래스는 오디오/비디오 파일 및 스트림의 재생을 제어할 수 있습니다. (공식문서)
MediaPlayer 클래스의 객체는 최소한의 설정으로 오디오와 동영상을 모두 가져오고 디코딩하며 재생할 수 있습니다. 다음과 같은 여러 미디어 소스를 지원합니다.
ㄱ. 로컬 리소스
ㄴ. 콘텐츠 리졸버에서 가져올 수 있는 것과 같은 내부 URI
ㄷ. 외부 URL(스트리밍)
#주의사항
MediaPlayer는 스레드로부터 안전하지 않습니다. 플레이어 인스턴스 생성 및 모든 액세스는 동일한 스레드에서 이루어져야 합니다. 콜백을 등록하는 경우 스레드에 Looper가 있어야 합니다. (공식문서)
#사용방법
MediaPlayer 객체를 생성한다.
[private var mediaPlayer : MediaPlayer? = null][import android.media.MediaPlayer]
"외부 URL(스트리밍)을 사용하려면" AndroidManifest.xml 파일에 인터넷 권한을 허용해야 한다.
[uses-permission android:name="android.permission.INTERNET"/]
"로컬 리소스를 재생하려면" res 폴더 내부에 새로운 Android Resource Directory를 만들어준다. 설정은 아래와 같이 지정해준다.
[Directory name : raw / Resource type : raw / Source set : main]
1번에서 생성한 MediaPlayer 객체를 구체화한다.
mediaPlayer = MediaPlayer.create(baseContext , R.raw.음악파일 이름)
[ㄱ.참고]
baseContext Vs context
baseContext : 현재 액티비티와 연결된 기본 컨텍스트 (일반적으로 개추)
context : 현재 활성화된 컴포넌트(사용자가 현재 상호 작용하고 있는 컴포넌트를 의미)와 관련된
컨텍스트(Context) : Android 앱 내에서의 "환경 정보와 리소스"에 접근하기 위한 객체를 의미한다. ["환경 정보와 리소스"] : 앱내의 리소스 , 시스템 서비스 , 앱 수명주기 관리 , 브로드캐스트 리시버 , 환경 설정 등등
[ㄴ.참고]
TODO("나중에 해보고 작성")
[ㄷ.참고]
TODO("나중에 해보고 작성")
[ㄱ. , ㄴ. , ㄷ. 관련 공식문서]
아래사진은 MediaPlayer를 정의한 단락에서 ㄱ , ㄴ , ㄷ 의 사용법이 정리되어 있는 안드로이드 공식문서이다.
Activity 또는 fragment에서 playButton이랑 바인딩해서 사용하면된다.
[아래의 참고코드를 참고해서 사용하면 될 듯 : apply가 짱이면 개추 ㅋ]
#공식문서 링크
https://developer.android.com/guide/topics/media/mediaplayer?hl=ko
https://developer.android.com/reference/kotlin/android/media/MediaPlayer