안녕하세요.
음원 실행관련으로 질문 사항이있어 글을 쓰게되었습니다.
[1]
어플의 패키지 안의 (res-raw) 안에있는 음원을 플레이하는 Mediaplayer가 있고,
-미디어 플레이어를 생성하고 리소스를 불러오는 방식
(ex.
private MediaPlayer player;
player = MediaPlayer.create(getContext(),R.raw.sample);
player.start();
)
[2]
어플에서 기본(디폴트) Mediaplayer를 호출하여 음원을 플레이하는 형식이 두가지가 있더라구요.
-Intent를 이용하여 디폴트 플레이어를 호출하여 음원을 플레이
(ex.
Intent i = new Intent(Intent.ACTION_VIEW);
i.setDataAndType(Uri.parse("content://media/external/audio/media/"), "audio/mp3");
startActivity(i);
)
이 두가지 방법이 있는데..
2의 방법은 음원을 내/외장에서만 불러와서 사용 되는것 같습니다..
1의 방법같이 패키지안의 리소스에 접근하여 플레이하려고 하는게 목적입니다.
-질문 요지-
* 2의 방법을 사용하면서 파일경로를 1의 방법같이 리소스 경로를 사용하는 방법을 알고싶습니다.
* 위의 방법을 사용하되 하나의 미디어 파일이 아닌 raw 폴더의 모든 음원을 Intent를 사용하여 디폴트 미디어로 불러오는 방법이 알고싶습니다..
해당 질문 사항에 관련하여 지식이 있거나 경험해 보신분 꼭 좀 답변 부탁드리겠습니다.
^^..
답변 정말 감사드리고요.
앱내부의 파일은 uri를 가져올수 없는 것인가요? ㅠ
그럼 어쩔수 없이 미디어 플레이어를 생성하고(1번 방법) 실행 시키는 방법 밖에 없겠네요..
혹은 답변주신것 처럼.. 어플 실행 동시에 해당 파일을 외장으로 옮기고 실행하는 방법 뿐이 없겟네요..
그렇다면 Intent를 사용할 시 해당 파일을 실행하는 것이 아니고 해당 폴더 경로를 주어
해당 폴더의 경로안에 있는 파일을 전부 디폴트 미디어 플레이어의 목록으로써 실행시키는 방법에 대해선
혹시 아시는 부분이 있으신가요? 여유 되신다면 답변 부탁드립니다.
raw 폴더에 있는 파일들을 외장메모리 어딘가로 복사해 두고
intent로 실행하시면 됩니다.
intent로 실행하려면 파일의 uri가 필요한데 앱 내부에 포함된 상태에서는 이걸 가져올 방법이 없습니다.