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



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

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

file.getAbsolutePath()

其中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();
}

这是对扩展Service的类的实例的引用。

有任何想法吗?

最佳答案

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

这解决了您的直接问题,即您创建了无效的Uri,因为它没有方案。它还使您可以处理将来可能不需要的不是文件的Uri类型(例如content Uri值)。

关于java - MediaPlayer-java.io.FileNotFoundException : No content provider,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46080969/

10-11 22:29
查看更多