Android 安卓,Can';我不能让MediaPlayer类正常工作

Android 安卓,Can';我不能让MediaPlayer类正常工作,android,android-mediaplayer,Android,Android Mediaplayer,我想为我创建的动画添加声音。每次动画开始时,应该也会有声音开始,但我无法启动声音 动画一切正常,代码如下: public class TestActivity extends Activity { AnimationDrawable anim; MediaPlayer mp; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setCo

我想为我创建的动画添加声音。每次动画开始时,应该也会有声音开始,但我无法启动声音

动画一切正常,代码如下:

public class TestActivity extends Activity {
AnimationDrawable  anim;
MediaPlayer mp;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    playAnimation(R.id.frameLayout1,R.drawable.anim2,R.raw.bang);
}

public void playAnimation(int FrameLayoutAddress, int animationXMLAdress, int soundAddress)
{
     mp = MediaPlayer.create(this.getApplicationContext(), soundAddress);
     mp.start(); // error here

     FrameLayout imgView = (FrameLayout)findViewById(FrameLayoutAddress);
     imgView.setBackgroundResource(animationXMLAdress);
     anim = (AnimationDrawable) imgView.getBackground();
     imgView.post(new Runnable()
     {       
         @Override
         public void run()
         {
             anim.start();

         }
     });    
}   
}


有人能指出我的错误吗?提前感谢您的时间。

您应该在
mp.start()之前调用
mp.prepare()
。另外,建议在调用
mp.prepare()

之前重置
MediaPlayer
,您会遇到什么错误?@Pumpkin:如果
create(…)
失败,mp将
null
-在尝试调用
start()
之前,请检查并确保它不为null。
R.raw.bang
是有效声音文件的有效资源ID吗?