Android:找不到声音文件

Android:找不到声音文件,android,file,audio,media-player,Android,File,Audio,Media Player,我知道我也有很多类似的问题,但出于某种原因,这些问题的答案似乎不起作用。我正在使用android,有一个名为“backgroundbeat.wav”的声音文件,我正在尝试导入它,但却出现了错误: "failed to open file 'res\raw\backgroundbeat.wav'. (No such file in directory)" 以下是我使用媒体播放器的代码: mp = new MediaPlayer(); try{ mp.

我知道我也有很多类似的问题,但出于某种原因,这些问题的答案似乎不起作用。我正在使用android,有一个名为“backgroundbeat.wav”的声音文件,我正在尝试导入它,但却出现了错误:

  "failed to open file 'res\raw\backgroundbeat.wav'. (No such file in directory)"
以下是我使用媒体播放器的代码:

mp = new MediaPlayer();

        try{
            mp.setDataSource("res/raw/backgroundbeat.wav");
            mp.prepare();
            mp.start();
        }catch(Exception e){
            e.printStackTrace();
        }

在这方面经验不多,但您可以尝试使用
mediaPlayer.setDataSource(FileDescriptor fd)
而不是
mediaPlayer.setDataSource(String path)
。看见显然,如果在使用字符串作为
setDataSource
的参数时调用
prepare()
,根据答案,这会导致一些问题

您可以尝试以下方法:

// Use the proper context instead of *context* variable
InputStream in = context.getResources().openRawResource(R.raw.backgroundbeat);
mediaPlayer.setDataSource(in.getFD())

如果有帮助,请告诉我

使用应用程序包名称定义正确的路径:

mp.setDataSource("android.resource://<YOURPACKAGE_NAME>/raw/backgroundbeat");
或从
/raw
文件夹加载媒体文件的其他方式,如果您在活动中,您可以使用:

mp = MediaPlayer.create(this, R.raw.backgroundbeat);
也可以使用视频视图播放文件

谢谢,我真的很感谢你的帮助。当我对您示例的第一部分仍有疑问时,我采纳了您的建议,将所有MediPlayer代码从我的view类移到了activity类中,并且成功了。感谢您向我指出这个问题,我非常感谢。不过,我在代码方面仍然有一些问题,所以我将所有内容都移到了活动类中,而不是视图类中,事情变得好多了。
mp = MediaPlayer.create(this, R.raw.backgroundbeat);