这里是setDataSource的字符串
/data/data/com.player/app_player/file.mp3
获得E / Exception:setDataSource失败。
这是代码:
mediaPlayer.setDataSource(context, Uri.parse("/data/data/com.player/app_player/file.mp3"));
我使用此代码存储该文件
getContext().getDir("player", Context.MODE_PRIVATE)
与/data/data/com.player/app_player
相同使用内容://data/data/com.player/app_player/file.mp3无效。
答案 0 :(得分:5)
这就是我解决它的方法。
String musicUrl = "";
if (songSavedInDB()) {
musicUrl = "here is any file path(Internal or external)"
FileInputStream fileInputStream = null;
try {
fileInputStream = new FileInputStream(musicUrl);
mPlayer.setDataSource(fileInputStream.getFD());
fileInputStream.close();
mPlayer.prepare();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} else {
musicUrl = "here is url";
try {
mPlayer.setDataSource(getContext(), Uri.parse(musicUrl));
mPlayer.prepareAsync();
} catch (IOException e) {
e.printStackTrace();
}
}