无法找到Media Player的声音文件URI

时间:2018-02-19 09:46:57

标签: java android uri media-player

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

  

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

我使用的方法之一的屏幕截图附带调试器输出。

代码: Code

调试器输出: Debugging Output

3 个答案:

答案 0 :(得分:0)

您可以使用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")); 

答案 1 :(得分:0)

确保您的文件存在于

  

getFilesDir()。的getPath()+ “/声音/”

目录。我认为该目录中缺少您的文件。如果您的文件存在于该目录中,那么它应该可以工作。如果找不到文件,则可能会发生MediaPlayer null指针异常。在创建MediaPlayer之前,请尝试检查您的文件是否存在。 如果这不起作用,请在其他目录中创建文件,如

  

getExternalFilesDir(Environment.DIRECTORY_MUSIC)

答案 2 :(得分:0)

问题出在下载声音文件中。因此,MediaPlayer对象导致null。

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