文件无法从Android内部存储中播放

时间:2016-05-26 07:47:30

标签: android media-player android-mediaplayer

这里是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无效。

1 个答案:

答案 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();
            }
        }