MediaPlayer-java.io.FileNotFoundException:没有内容提供者

And*_*cki 6 java android exception android-mediaplayer

我已经写了一段时间的mp3播放器,但是由于某种原因,出现了以下异常:

W / MediaPlayer:无法打开/ storage / emulated / 0 / Music /通用音乐file.mp3:java.io.FileNotFoundException:没有内容提供者:/ storage / emulated / 0 / Music / generic音乐file.mp3

每当我尝试播放任何歌曲时,都会不断弹出。

我检索歌曲路径的方式是:

file.getAbsolutePath()
Run Code Online (Sandbox Code Playgroud)

其中file是一个File实例。我播放歌曲的方式是:

try {
    mediaPlayer = MediaPlayer.create(this, Uri.parse(currentTrack.getPath()));
    mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mediaPlayer) {
            nextTrack();
        }
    });
} catch (Exception ex) {
    ex.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

其中是一类,它扩展的实例的引用服务

有任何想法吗?

Com*_*are 4

大概currentTrack有一个File对象。如果是这样,请替换Uri.parse(currentTrack.getPath())currentTrack.getUri(),您在其中实现返回getUri()的值。Uri.fromFile()File

这解决了您眼前的问题,即您创建了一个 invalid Uri,因为它没有方案。它还让您能够处理将来可能需要的Uri非文件类型(例如,值)。content Uri