2012-05-26 3 views
0

Addig로 MediaPlayer를에 파일을 쉽게 :기능 인수는 파일 이름

mp = MediaPlayer.create(Myctivity.this, R.raw.sound); 

하지만 나는이 같은 함수에서 오는 인수로 파일 이름이 있다면?

public void CreateSound(String filename, float volume) 
    { 
     mp = MediaPlayer.create(Myctivity.this, R.raw.???); 
      mp.setVolume(volume, volume); 
      try { 
      mp.prepare(); 
     } catch (IllegalStateException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
      mp.start(); 
    } 

답변

0

This 스레드는 파일 이름을 사용하여 ID를 가져

int resID=getResources().getIdentifier(fname, "raw", getPackageName()); 

을 언급하고있다. 이것은 다음 MediaPlayer를 전달할 수 있습니다 : (OBS는 파일 이름을 사용하기 전에이를 소문자로 변환 된 것) :

MediaPlayer mediaPlayer=MediaPlayer.create(this,resID); 
+0

감사합니다! 나는 이것을 어딘가에서 보았던 것을 기억한다. 나는 그것을 잊어 버린다. – erdomester