2013. 5. 11. 09:21

안드로이드 SimpleCursorAdapter와 MediaStore 이용하기

안드로이드에서는 MediaStore라는 자체 미디어 DB 체계가 있어 이미지나 음악파일, 동영상 등을 자동 관리하는 기능이 있습니다. 그래서 여기에 접근하면 손쉽고 편리하게 미디어들을 이용할 수 있습니다. 일례로 스마트폰 사용 중 가장 많은 비중을 차지하는 것들 중 하나인 mp3 음악파일을 듣는 코드를 작성할때 MediaPlayer를 쓰지 않고도 아주 짧고 간단하게 만들 수 있습니다.

여기서는 MediaStore 중에서 음원파일들만 추려내 리스트뷰로 나타내고 해당 목록을 터치하면 안드로이드에 내장되어 있는(Built-in) mp3 재생기능을 Intent하도록 되어 있습니다.

getContentResolver()로 cursor가 ContentResolver를 쿼리하여 Media중 Audio에 해당하는 외부 컨텐트를 받습니다. 그리고, 리스트뷰에는 SimpleCursorAdapter를 달아주면 되는데 여기에는 mp3 파일의 제목이 출력됩니다. 이제 onCreate() 바깥쪽에 리스트뷰의 목록을 터치하면 실행되는 리스너인 onItemClickListener를 붙여줍니다.

실행시키고 목록 중 하나를 터치하면 화면이 바뀌면서 mp3가 재생됩니다. MediaPlayer를 사용해서 리스트뷰 하단에 컨추롤러를 달아주면 Intent없이 바로 음악을 재생하도록 만들 수도 있습니다.