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