Java 找不到媒体播放器的声音文件URI
我想在用户单击某些文本时播放声音文件。我的数据库中有声音文件列表,声音文件在我的应用程序中成功下载。我正在尝试使用Java 找不到媒体播放器的声音文件URI,java,android,uri,media-player,Java,Android,Uri,Media Player,我想在用户单击某些文本时播放声音文件。我的数据库中有声音文件列表,声音文件在我的应用程序中成功下载。我正在尝试使用MediaPlayer播放这些文件。问题是我找不到播放MediaPlayer所需的URI。从而导致媒体播放器对象为空。我尝试了互联网上列出的几乎所有解决方案,但都没有解决我的问题。从数据库下载时声音文件的路径为 “/data/user/0/mypackage/files/Sound/diabetes\u ur\u Sound\u 1\u 1.0.0.mp3” 我使用的其中一个方法的屏
MediaPlayer
播放这些文件。问题是我找不到播放MediaPlayer所需的URI。从而导致媒体播放器对象为空。我尝试了互联网上列出的几乎所有解决方案,但都没有解决我的问题。从数据库下载时声音文件的路径为
“/data/user/0/mypackage/files/Sound/diabetes\u ur\u Sound\u 1\u 1.0.0.mp3”
我使用的其中一个方法的屏幕截图附带了调试器输出
代码:
调试器输出:
您可以使用该方法。如果路径正确,可以将其作为参数传递
例如:
try {
mp.setDataSource(getApplicationContext(), myUri1);
} catch (IllegalArgumentException e) {
Toast.makeText(getApplicationContext(), "You might not set the URI correctly!", Toast.LENGTH_LONG).show();
} catch (SecurityException e) {
Toast.makeText(getApplicationContext(), "You might not set the URI correctly!", Toast.LENGTH_LONG).show();
} catch (IllegalStateException e) {
Toast.makeText(getApplicationContext(), "You might not set the URI correctly!", Toast.LENGTH_LONG).show();
} catch (IOException e) {
e.printStackTrace();
}
看看这个
编辑
首先,尝试一下它是否是硬编码的,然后尝试动态获取路径
用你的路径试试这个
mp.setDataSrouce(MainActivity.this, Uri.parse("/data/user/0/mypackage/files/Sound/diabetes_ur_sound_1_1_1_1.0.0.0.mp3"));
确保您的文件存在于中 getFilesDir().getPath()+“/Sound/” 目录。我想你的文件在那个目录里不见了。如果您的文件存在于该目录中,那么它应该可以工作<代码>MediaPlayer
null
如果找不到文件,可能会发生指针异常。在创建MediaPlayer
之前,请尝试检查您的文件是否存在。
如果不起作用,请在其他目录中创建文件,如
getExternalFilesDir(环境.目录\u音乐)
问题在于下载声音文件。因此,MediaPlayer对象将导致null
现在,我在静态文件的帮助下下载声音,并使用MediaPlayer中的文件路径问题已解决能否显示项目的结构?尝试使用
setDataSource(filePath)代码>MediaPlayer的方法
示例文件路径为/storage/sdcard0/Recordings/Recordings\u 20180207\u 124312。m4a
@AbuYousuf我已经尝试过了。我的URI有问题吗?我想问题是文件路径。如果文件路径正确,那么它将工作。您可以使用您的下载文件路径。向我提供此异常->java.io.IOException:Prepare failed.:status=0x1您在manifest.xml中是否有此
,何时向您提供错误?至少在演奏音乐吗?是的。。谢谢阿布·优素福。你知道如何从api下载声音文件到android应用程序吗?因为我认为下载文件时存在问题,所以它返回空媒体播放器对象。请使用Android系统下载管理器。检查本教程,谢谢。我在上面。我下载了(使用一些网站URL)android中的声音文件,并成功地播放了它。现在我正在寻找Web Api方法,它提供了URL(在Asp.Net核心中)。你能帮忙吗?很高兴听到你成功地播放了文件。“提供URL的Web Api方法”您能解释一下吗?