从缓存目录播放音频

Law*_*nez 2 android

从SD卡播放音频时,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());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Law*_*nez 7

更新:我刚刚从这个博客阅读并解决了我的问题,为了让我在缓存中播放音频,我添加了这一行,就是这样.希望这对未来的任何人都有帮助.这是方法.

File file = new File(filepath)
file.setReadable(true, false);
Run Code Online (Sandbox Code Playgroud)