본문 바로가기

안드로이드 개발 팁/참고자료

안드로이드에서 멀티미디어 파일 경로는 어떻게 되나요?


예전에 미디어 플레이어 예제를 만들고, 강좌를 올렸었는데 역시나(...) 지금 보니 뭔가 빠진 것들이 있더군요(!)
최대한 빠뜨리지 않고 글을 쓰려고 노력하고 있는데, 그게 잘 되지를 않네요..ㅠㅠ 글 쓰는 실력을 더 키워야 하려나요?

안드로이드에서 멀티미디어 파일(비디오 파일, 음악 파일 등..)을 불러오는 방법에는 크게 로컬 위치 (SD카드, 어플리케이션 내장 등..)와 인터넷에서 불러오기가 있는데요, 지난 강좌에서는 로컬 위치에서 불러오는 방식 중에서도 SD카드를 이용하는 방법을 이용하여 강좌를 진행했었습니다. 그런데 정작 중요한 SD카드에 들어간 파일을 어떻게 불러오는지에 대해 설명을 빼먹었네요.. OTL.... 아마 DDMS를 이용하여 음악파일 넣는 강좌때문에 헷갈렸었나봐요!


이번 강좌에선 SD카드에서 파일 불러오기, 그리고 raw 리소스에서 불러오는 방법까지 다뤄보겠습니다.

1. SD카드에서 불러오기

지난 강좌에서 이용했던 방법입니다. DDMS를 이용하여 가상의 SD카드에 음악 파일을 먼저 추가시켜놓아야 합니다. 2009/04/07 - [안드로이드 이야기/이거, 알고있니?] - 안드로이드 에뮬레이터에 가상의 SD카드 마운트시키기 를 참고하세요.

MediaPlayer에서 파일을 불러올 때, setDataSource()메소드를 이용하여 파일을 불러오게 됩니다.
    MediaPlayer mp = new MediaPlayer();    mp.setDataSource(_파일 경로_); // 이곳에서 파일 경로를 지정해줍니다.    mp.prepare();    mp.start();


SD카드 내에 있는 파일의 경로는 앞에 /sdcard/를 붙여준 후, 뒤에 폴더 및 파일 이름을 적어주시면 완성됩니다.
마치 /sdcard/가 윈도우에서의 E:\ 혹은 G:\정도의 역할을 한다고 보시면 편합니다.

처음 DDMS를 이용하여 음악 파일을 넣게 되면 SD카드의 루트 디렉토리 (/sdcard/)에 저장되게 됩니다. 고로, 따로 폴더를 만들어서 저장하지 않는 이상 파일의 경로는 /sdcard/_음악파일 이름_ 이 됩니다.

예를 들어, example.mp3 파일을 넣었다면 이 파일의 경로는 /sdcard/example.mp3 가 됩니다.


2. Raw 파일(리소스) 에서 불러오기

안드로이드 어플리케이션의 구성 요소 중 리소스라는 놈이 있습니다. 보통은 레이아웃 파일이나 문자열 값들을 저장해두죠. 하지만, 리소스에 멀티미디어 파일도 추가할 수 있답니다! 음악 파일 또한 이 리소스에 추가해놓고 불러올 수 있습니다. (하지만, 실제 어플리케이션 작성시에 이런 경우는 드물겠죠? 용량을 엄청 차지할테니까요;;)

우선, 음악 파일을 해당 프로젝트의 res/raw 폴더에 넣어줍니다. 파일 이름이 music_file.mp3라고 가정합시다. 여기에서, 파일 이름은 소문자로만 이루어져야 한다는 사실에 유의하세요. 이 파일은 다음과 같이 접근하면 됩니다.
    MediaPlayer mp = MediaPlayer.create(context, R.raw.music_file);    mp.start();


이 글은 Android SDK 1.5_r1을 기준으로 작성되었습니다.
추후 SDK업데이트로 인해 변동이 생길 수 있습니다.