我有一个名为Hello.m4a的语音笔记
以下是设备上音频的文件路径:
我想将这个语音注释设置为一个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
答案 0 :(得分:2)
设置Uri时,在文件路径之前添加"file://"
,即:
MediaPlayer.create(this, Uri.parse("file://" + voice);
你必须让MediaPlayer明确知道它的文件,以及http流等。
此外,如果你的目标是API 23+,那么你就需要运行时权限才能访问storiage上的文件。