我正在尝试使用以下代码加载/播放声音(I have file /res/raw/fx2.wav)
:
MediaPlayer mp = MediaPlayer.create(this, R.raw.fx2);
或
MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.fx2);
我得到了这个错误:
java.io.IOException:准备失败:status = 0x1
我搜索了这个错误,但没有一个答案有工作代码。 这样的例子也有:
MediaPlayer mediaPlayer = new MediaPlayer();
然后是:
FileInputStream
or
mp.setDataSrouce
我正在尝试这些,但到目前为止我没有任何工作,我不知道什么方法最适合我或在什么情况下应该使用它们?我只想加载并播放声音。
可能我只是没有正确地获得上下文。或者我的声音文件有问题(但这是一种正常的小方式,所以我认为不是这样)。
有什么想法吗?
答案 0 :(得分: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。
答案 1 :(得分:0)
这对我有用:
MediaPlayer mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.beep);
mediaPlayer.start();
确保您要导入:
import android.media.MediaPlayer;