마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 wav파일 컨트롤하는법

0 추천
그림파일은 drawable 폴더에 넣어서 관리하잖아요

 

wav파일은 어떻게하나요 ? wav파일두개를 비교해야하는데

 

어떻게 받아와야하는지 잘 모르겠습니다.
음무 (17,820 포인트) 님이 2014년 2월 11일 질문

1개의 답변

+1 추천
 
채택된 답변
res/raw 폴더에 넣어서 관리합니다.

http://stackoverflow.com/questions/13883883/playing-short-wav-files-android

여기 링크에보면 샘플이 있네요~
익명사용자 님이 2014년 2월 11일 답변
음무님이 2014년 2월 11일 채택됨
res/raw라는게 res폴더 아래 raw라는 폴더를 만들어서 거기에 넣는게 맞나요 ??

그리고 사용하는 라이브러리에 인자를 스트링으로받습니다.

"wav_16.wav", "wav_16k_work.wav") ;

이런식으로요
음원을 어떻게 해줘야 스트링으로 저렇게 넣을 수 있는건가요 ??
res폴더에 들어간다는건 릴소스 파일 R.java를 만들때 거기에 id가 생성이되는걸 의미합니다.
그러면, res하위 raw폴더에 값을 넣고 빌드를하면, 리소스 파일 R.java가 생성될때 int값으로 raw폴더에 추가한 파일의 이름이 생성이 되겠죠?
아마 옴무님이 파일명을 wav_16.wav라고 해서 raw폴더에 넣게되면,
R.raw.wav_16이라는 아이디값이 하나 생길거에요.
그러면 옴무님은 여기서 인자를 넘기실때 int형으로 선언을해서 해당 int값을 넣어서 호출해주시면됩니다.
반드시 String을 써야할 이유가있나요?
라이브러리에서 넘겨받는 인자가 String형입니다.
거기에 맞춰서 사용하려니 ..
넘겨주는 인자가 wav파일의 제목 String입니다.
이 제목String과 실제 제목의 연결고리가 없는데 어떻게 해줘야하는지 모르겠습니다.
해당방법을 해결할 코드를 본적이 있는데요. 기다려봐요 침착하게 찾아보고 답글줄게요.
찾아봤는데 못찾겠네요. 제가 착각한걸수도..
그러한 조건이 붙는다면, raw폴더에 넣지마시고, 프로젝트의 res와 동일한 레벨에 assets폴더에 넣으세요. 그래고 아래와같은 코딩으로 사용하시면 됩니다.
출처 : http://stackoverflow.com/questions/3289038/play-audio-file-from-the-assets-directory
    AssetFileDescriptor afd = getAssets().openFd("AudioFile.mp3");
    player = new MediaPlayer();
    player.setDataSource(afd.getFileDescriptor());
    player.prepare();
    player.start();
추가답변드립니다.
getResources().getIdentifier("wav_16", "raw", pkgName);
이렇게하면 R에 정의되어있는 id값이 리턴됩니다.
그걸 가져다 사용하시면 되겠네요 ㅎ
...