2015-05-05 29 views
0
private void startSound(String filename) throws IOException{ 
    AssetFileDescriptor afd = getAssets().openFd(filename); 
    MediaPlayer player = new MediaPlayer(); 
    player.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength()); 
    player.prepare(); 
    player.start(); 
} 

@Override 
public void onClick(View v) { 
    switch(v.getId()) { 
case R.id.addForLearning: 

     break; 
    case R.id.music: 

     String words = mainDataTextView.getText().toString(); 

     String con = "voice/"+words+".mp3"; 

     try { 
      startSound(con); 

     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

     break; 

爲什麼S tring in openFd(filename)不起作用?我得到FileNotFoundException。如果我輸入openFd("voice/song.mp3")所有的工作,但它不適合我。爲什麼openFd(文件名)不適用於String?

+0

當你執行代碼時,你目前的工作目錄是什麼? –

+0

如何調用'startSound()'?它具有什麼價值?你可以發佈該代碼嗎? – pathfinderelite

+0

@pathfinderelite我更新案例。在方法OnClick中調用startSound()。值是String。 –

回答

0

我會打賭很多,你從你的textview得到的字符串沒有被裁剪的空格。

嘗試

String words = mainDataTextView.getText().toString(); 
String trimmedWords = words.trim(); 
String con = "voice/"+trimmedWords+".mp3"; 

此外,如果這是不正確的,你可以打印的內容words包含?

+1

謝謝!你是我的救星。 –

+0

很高興幫助! :) –

相關問題