본문 바로가기

ANDROID/Debug Logs

[안드로이드] Exo Player에서 발생하는 java.net.MalformedURLException: unknown protocol 해결

Exo player 셋업을 마치고 player에 Uri 파일을 넘겨주는 과정에서

 

java.net.MalformedURLException: unknown protocol 에러가 발생하였다.

 

player에 넘겨주고자 했던 건 프로젝트의 리소스 폴더 내 raw 폴더에 넣어둔 mp4 파일이었는데,

 

기타 다양하게 나와있는 Uri 생성 방법으로 해보았으나 실패하였고, 결론적으로 

 

아래의 방식을 통해 문제를 해결할 수 있었다.

 


 

val rawDataSource = RawResourceDataSource(context)

rawDataSource.open(DataSpec(RawResourceDataSource.buildRawResourceUri(R.raw.sample_video)))

val videoSource = ProgressiveMediaSource.Factory(dataSourceFactory)
	.createMediaSource(rawDataSource.uri)
    
player.prepare(videoSource)

 


 

RawResourceDataSource에 참조하고자 하는 리소스 id를 집어넣은 뒤, 여기로부터 uri를 참조하니

 

원래부터 보고자 했던 토깽이(샘플 영상에 등장하는 비만토끼)가 오류없이 잘 등장하는 것을 확인하며 해피엔딩을 맞을 수 있었다.

 

 

< 참조 >

 

https://gist.github.com/davidalbers/bddea847f786932c79b781b6e22dfd33

 

Android: play /raw resource with Exoplayer

Android: play /raw resource with Exoplayer. GitHub Gist: instantly share code, notes, and snippets.

gist.github.com