티스토리 뷰

exo player를 음악재생용으로 사용하게 되면, 원래 동영상이 재생되는 부분은 사용하지 않는다.

하지만 나는 그 부분에 앨범 이미지가 보이게 하고 싶었다.

 

이 부분을 수정하려면 어떻게 해야할까?

 

우선 가장 기본적인 방법으로는 exo player 라이브러리에서 제공해주는 함수가 있다.

 

exoPlayerView.setDefaultArtwork(image);

를 사용하면된다.

 

image 부분에는 Bitmap 형식의 이미지가 들어가도 되고, Drawable 형식의 이미지가 들어가도 된다.

 

 

하지만 나는 서버에서 링크를 받아와 이미지를 삽입하기 때문에, Glide를 사용하고 싶었다.

 

Glide를 사용하지 않고 bitmap으로 받아와서 바로 사용하게 되면,

 

사용 메모리 용량이 커서 앱이 팅길 수도 있다. 이를 해결하기 위해서 Resize하고 이미지 품질을 낮추고.. 등등.. 

 

하지만 Glide를 사용하면 이런것 없이도 OOM 에러를 방지해준다. 사용법도 간단하다.

 

Glide.with(context).load(이미지파일).into(ImageView);

 

한줄이면 된다.

 

 

 

자 이제 다시 본론으로 돌아와서. Exoplayer의 artwork ( 기본 영상 재생 부분 ) 에 Glide을 사용하려면 어떻게 하면 될까?

 

 

결론부터 말자하면

 

PlayerView exoPlayerView;
exoPlayerView = view.findViewById(R.id.exoplayerview);//exo_player ui xml을 통해 만들어주자.


ImageView imageView = exoPlayerView.findViewById(R.id.exo_artwork);
imageView.setVisibility(View.VISIBLE);
Glide.with(getView()).load(이미지 url).into(imageView);

이렇게 하면 된다.

 

여기서 exo_artwork는 exo_player의 영상 재생 부분이다.

 

즉 영상재생부분을 VISIBLE 해주고, Glide를 통해 이미지를 보여주면 된다.

 

setDefaultArtwork 부분을 살펴보았더니, 결국은 bitmap 이미지를 exo_artwork 에 넣어주고

exo_artwork를 VISIBLE 시켜주는 함수였다.

 

처음에는 VISIBLE을 시켜줘야하는지 모르고 그냥 해서 검정색 화면만 나와 당황했지만,

 

다시 찾아보니 VISIBLE 하는 부분이 있어 추가해 주었다.

 

이렇게 하면 Glide을 이용해서 exo_player에 앨범 이미지를 보여줄 수 있다.

 

 

 

댓글
최근에 올라온 글
최근에 달린 댓글
250x250