Android播放声音-强制关闭错误
我使用下面的代码在触摸imageview时播放wav声音Android播放声音-强制关闭错误,android,wav,Android,Wav,我使用下面的代码在触摸imageview时播放wav声音 MediaPlayer mp = MediaPlayer.create(this, R.raw.ok); mp.start(); while (mp.isPlaying()) { // donothing }; mp.release(
MediaPlayer mp = MediaPlayer.create(this, R.raw.ok);
mp.start();
while (mp.isPlaying()) {
// donothing
};
mp.release();
这给了我强制关闭错误,我遗漏了什么吗?或者我需要在清单文件中提供权限吗?。请帮助
谢谢试试看
public void audioPlayer(String path, String fileName){
//set up MediaPlayer
MediaPlayer mp = new MediaPlayer();
try {
mp.setDataSource(path+"/"+fileName);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
mp.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mp.start();
}
根据您的代码更改此方法。此外,如果出现任何错误,您应该发布错误日志,以便其他人能够确定确切的问题。创建media player后,您必须在启动前调用prepare()。试试这个代码
MediaPlayer mp = MediaPlayer.create(this, R.raw.ok);
mp.prepare();
mp.start();
如果您不提供您的错误的stacktrace,则很难给出建议。10-24 11:03:23.077:DEBUG/MediaPlayer(16983):创建失败:10-24 11:03:23.077:DEBUG/MediaPlayer(16983):java.io.IOException:Prepare失败:status=0x1 10-24 11:03:23.077:DEBUG/MediaPlayer(16983):在android.media.MediaPlayer.Prepare(本机方法)10-24 11:03:23.077:DEBUG/MediaPlayer(16983):在android.media.MediaPlayer.create(MediaPlayer.java:647)10-24 11:03:23.077:DEBUG/MediaPlayer(16983):在android.media.MediaPlayer.create(MediaPlayer.java:647)10-24 11:03:23.077:DEBUG/MediaPlayer(16983):在samples.demo.MainStart.CombineButton(MainStart.java:438)10-24 11:03:23.077:DEBUG/MediaPlayer(16983):at samples.demo.MainStart.access$0(MainStart.java:378)10-24 11:03:23.077:DEBUG/MediaPlayer(16983):at samples.demo.MainStart$2.onTouch(MainStart.java:274)10-24 11:03:23.077:DEBUG/MediaPlayer(16983):at android.view.view.view.dispatchTouchEvent(view.java:3779)它抛出了java.lang.NullPointerException我想你的MediaPlayer对象创建失败了。因此,在
mp
中产生null。当您尝试使用start()
播放空对象时,它将引发空指针异常。尝试确保原始文件夹中的音频/视频文件正常。感谢回复。。。它仍然抛出相同的错误java.lang.nullpointerexception。是因为尝试在触摸imageview时播放wav吗?它显示java.io.IOException:Prepare失败。您没有给mp.prepare()。nullppointereException在哪里?我没有在你的日志中看到它。请调试并查看空指针异常的确切位置。检查您的imageview,以及您的原始文件是否能够读取