Android播放声音-强制关闭错误

Android播放声音-强制关闭错误,android,wav,Android,Wav,我使用下面的代码在触摸imageview时播放wav声音 MediaPlayer mp = MediaPlayer.create(this, R.raw.ok); mp.start(); while (mp.isPlaying()) { // donothing }; mp.release(

我使用下面的代码在触摸imageview时播放wav声音

                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,以及您的原始文件是否能够读取