У меня есть 3 аудиофайла в SDCard по следующему пути / SDCard / Media.Я использую следующий код для воспроизведения этого файла один за другим.Любые предложения mPlay.setOnClickListener (new OnClickListener () {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.d("Before resume","");
mPlayer = new MediaPlayer();
File dir = new File("/sdcard/media");
String[] children = dir.list();
if (children == null) {
// Either dir does not exist or is not a directory
Context context = getApplicationContext();
CharSequence text1 = "No media file";
int duration = Toast.LENGTH_SHORT;
Toast toast1 = Toast.makeText(context, text1, duration);
toast1.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast1.show();
} else {
for (int i=0; i<children.length; i++) {
// Get filename of file or directory
String mFileName = children[i];
try {
mPlayer.setDataSource(mFileName);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
mPlayer.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mPlayer.start();
mSeekBar.setMax(mPlayer.getDuration());
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
while (mPlayer != null
&& mPlayer.getCurrentPosition() < mPlayer
.getDuration()) {
Log.d("Indide Run Method", Integer.toString(mPlayer
.getCurrentPosition()));
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mSeekBar.setProgress(mPlayer.getCurrentPosition());
}
// start.setText(mPlayer.getCurrentPosition());
}
}).start();
mSeekBar.setProgress(mPlayer.getCurrentPosition());
pauseRecord.setVisibility(View.INVISIBLE);
mResume.setVisibility(View.VISIBLE);
}
}
}
});
И у меня следующая ошибка
05-20 15:20:04.851: ERROR/PlayerDriver(1099): Command PLAYER_SET_DATA_SOURCE completed with an error or info PVMFErrNotSupported
05-20 15:20:04.851: WARN/PlayerDriver(1099): PVMFInfoErrorHandlingComplete
05-20 15:20:04.851: WARN/MediaPlayer(3164): info/warning (1, 26)
05-20 15:20:04.851: ERROR/MediaPlayer(3164): error (1, -4)
05-20 15:20:04.851: WARN/System.err(3164): java.io.IOException: Prepare failed.: status=0x1
05-20 15:20:04.851: WARN/System.err(3164): at android.media.MediaPlayer.prepare(Native Method)
05-20 15:20:04.851: WARN/System.err(3164): at com.fsp.ResumeRecordTest.ResumeRecordTest$1.onClick(ResumeRecordTest.java:154)
05-20 15:20:04.851: WARN/System.err(3164): at android.view.View.performClick(View.java:2397)
05-20 15:20:04.851: WARN/System.err(3164): at android.view.View.onTouchEvent(View.java:4212)