2

I'm trying to setDataSource for my mediaplayer but when I do that I get IllegalArgumentException. I couldn't identify the prob, is there anything missing?

mediaPlayer = new MediaPlayer();

try{
        mediaPlayer.setDataSource(getPathName);
    }catch(IllegalArgumentException e){
        throw new RuntimeException("Illegal Argument to MediaPlayer.setDataSource", e);
    } catch (IllegalStateException e) {
        // TODO Auto-generated catch block
        throw new RuntimeException("Illegal State in MediaPlayer.setDataSource", e);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        throw new RuntimeException("IOException in MediaPlayer.setDataSource", e);
    }

    try{
        mediaPlayer.prepare();
    }catch(IllegalStateException e){
        throw new RuntimeException("IllegalStateException in MediaPlayer.prepare", e);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        throw new RuntimeException("IOException in MediaPlayer.prepare", e);

    }
    mediaPlayer.setOnCompletionListener(this);
}

this is a method that I call to return the file name

public String getPathName(){
    String[] name = new String[2];
    String FileName;
    String FilePath;
    File sdCardRoot = Environment.getExternalStorageDirectory();
    File yourDir = new File(sdCardRoot, "/Android/data/com.voice.recording.v3/files/");

    name = yourDir.list();

    FileName = name[0];

    FilePath = yourDir.getPath() +"/" + FileName;

    return FilePath;

}
kojh
  • 269
  • 1
  • 6
  • 15
  • You have no check whether you get an actual file or not. Put a break point and see what file path is returned. make sure name[0] is actually the file you want. – neo May 13 '13 at 13:49
  • I have alr checked and the file path it return is the correct path – kojh May 13 '13 at 17:06

0 Answers0