媒体播放器在uri上显示始终为null

时间:2017-12-28 07:37:37

标签: android

我有问题,我的媒体播放器无法理解,如果问题出在我的Uri或媒体播放器上。我试过以下的Uries ..

    String media = Environment.getRootDirectory()+"/media/internal/audio/media/notifications/"+myTune+".mp3"
    Uri uri = Uri.Parse(media);
    mediaPlayer = MediaPlayer.create(MainActivity.this,uri);

另一个

    String media = Environment.getRootDirectory()+"/media/audio/notifications/+myTune+".mp3";
    Uri uri = Uri.Parse(media);
    mediaPlayer = MediaPlayer.create(MainActivity.this,uri);

和第三个

    String media = Environment.getRootDirectory()+"/media/internal/audio/media/notifications/"+myTune";
    Uri uri = Uri.Parse(media);
    mediaPlayer = MediaPlayer.create(MainActivity.this,uri);

但是所有这些媒体播放器都是空的我从系统通知中获取myTune。请帮助我们......

2 个答案:

答案 0 :(得分:0)

您可能没有在运行时检查过请求权限 https://developer.android.com/training/permissions/index.html

答案 1 :(得分:0)

首先尝试对下面的路径进行硬编码,然后使用您的“myTune”进行验证。 此外,它还有助于添加myTune exaclty的内容。

请验证该文件是否存在于该位置,并且路径enterend没有错误。

//String media = Environment.getRootDirectory()+"/media/internal/audio/media/notifications/"+myTune+".mp3"
//or ENTER FULL PATH MANUALLY TO TEST 
String media = Environment.getRootDirectory()+"/media/internal/audio/media/notifications/<yourtunenamehere>.mp3"
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setOnPreparedListener(onPreparedListener);
mediaPlayer.reset();
mediaPlayer.setDataSource(media);
mediaPlayer.prepare();


private MediaPlayer.OnPreparedListener onPreparedListener = new MediaPlayer.OnPreparedListener() {
  @Override
  public void onPrepared(MediaPlayer mediaPlayer) {
  mediaPlayer.start();
  }
};

同时添加此权限。

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>