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方法”您能解释一下吗?