sdcardからオーディオを再生するときに、MediaPlayer
がファイルを再生します。しかし、getCacheDir()
から再生するとエラーになります。 MediaPlayer
はgetCacheDir()
のファイルを再生できません。ここでキャッシュディレクトリからオーディオを再生する
は、コードスニペットです:
private void startPlaying(String asAudioFileName) {
File fFile = new File(VocaPreview.this.getCacheDir() + "/" + asAudioFileName.toLowerCase() + ".mp3");
if(!fFile.isFile()) {
Toast.makeText(getApplicationContext(), "File not found", Toast.LENGTH_SHORT).show();
} else {
try {
FileInputStream fisAudio = new FileInputStream(fFile);
//fmpAudio.setDataSource(VocaPreview.this.getCacheDir() + "/" + asAudioFileName.toLowerCase() + ".mp3");
//fmpAudio.setDataSource("/sdcard/2.mp3");
fmpAudio.setDataSource(fisAudio.getFD());
fmpAudio.prepare();
fmpAudio.start();
} catch(IOException ioe) {
Log.e("START PLAYING", ioe.getMessage());
}
}
}