媒体播放器 - 设备上的文件路径无法识别

时间:2017-01-23 00:54:33

标签: android

我有一个名为Hello.m4a的语音笔记

以下是设备上音频的文件路径:

enter image description here

我想将这个语音注释设置为一个MediaPlayer对象,并且不能为我的生活弄清楚如何。这是我最近的尝试,但我一直收到一个空对象错误消息:

buildType:

以下是我的日志消息:

    String voice = Environment.getExternalStorageDirectory().getPath() + "/VoiceRecorder/Hello.m4a";
    Log.d("MAIN",voice);
    MediaPlayer mpintro = MediaPlayer.create(this, Uri.parse(voice));
    mpintro.start();

这是logcat消息:

/storage/emulated/0/VoiceRecorder/Hello.m4a

有人可以解释我在这里做错了什么吗?谢谢。

我在我的清单文件中有这些权限:

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.MediaPlayer.start()' on a null object reference

1 个答案:

答案 0 :(得分:2)

设置Uri时,在文件路径之前添加"file://",即:

MediaPlayer.create(this, Uri.parse("file://" + voice);

你必须让MediaPlayer明确知道它的文件,以及http流等。

此外,如果你的目标是API 23+,那么你就需要运行时权限才能访问storiage上的文件。