我已经写了一段时间的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/