2017-02-23 163 views
0

我试图加载/播放声音(I have file /res/raw/fx2.wav)与代码:Android的媒体播放器状态=为0x1的错误,要播放声音

MediaPlayer mp = MediaPlayer.create(this, R.raw.fx2); 

MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.fx2); 

,我得到这个错误:

java.io.IOException: Prepare failed.: status=0x1

我搜索了这个错误,但没有答案有工作代码。 这样的例子也有:

MediaPlayer mediaPlayer = new MediaPlayer(); 

,然后用的东西: FileInputStream or mp.setDataSrouce

我与这些尝试,但是我什么都没有,到目前为止工作,我不知道什么方法是最适合我或他们应该使用什么样的情况?我只是想加载和播放声音。

这可能是我只是没有正确地获取上下文。或者我的声音文件有问题(但是这是一种很小的方式,所以我认为不是这样)。

任何想法?

回答

0

您应该有权在AndroidManifest.xml文件中从外部存储器读取文件。

<manifest ...> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
... 
</manifest> 

你也应该尝试的路径更改为使用下面的代码文件(修改com.example.myapp你的包名):

MediaPlayer mp = new MediaPlayer(); 
Uri uri = Uri.parse("android.resource://com.example.myapp/" + R.raw.fx2); 
mp.setDataSourceUri(this, uri); 

详见this answer

0

这为我工作:

MediaPlayer mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.beep); 
mediaPlayer.start(); 

确保您导入:

import android.media.MediaPlayer;