找不到媒体播放器的声音文件 URI

Unable to find sound files URI for Media Player

我想在用户点击特定文本时播放声音文件。我的 数据库 中有声音文件列表,声音文件在我的应用程序中 下载 成功。我正在尝试使用 MediaPlayer 播放这些文件。问题是我 找不到播放 MediaPlayer 所需的 URI。从而导致空媒体播放器对象。我已经尝试了互联网上列出的几乎所有解决方案,但都没有解决我的问题。从数据库下载声音文件的路径

"/data/user/0/mypackage/files/Sound/diabetes_ur_sound_1_1_1_1.0.0.0.mp3".

调试器输出附有我使用的其中一种方法的屏幕截图。

代码:

调试器输出:

您可以使用setDataSource(Context context, Uri uri)方法。如果您的路径正确,您可以将其作为参数传递。

示例:

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();
}

看看这个tutorial

编辑

首先尝试硬编码是否有效,然后尝试动态获取路径。

用你的路径试试这个

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(Environment.DIRECTORY_MUSIC)

问题出在下载 声音文件中。因此 MediaPlayer 对象的结果为 null。

现在我在静态文件的帮助下下载声音并使用 MediaPlayer 中的文件路径。 问题已解决