我在主界面一个按钮里面设定了一个声音,当点击按钮的时候 触发声音,然后跳到另一个Activity,但是在另一个activity里返回到主界面的时候,在点击那个按钮怎么没声音了呢?!

解决方案 »

  1.   

    相关代码
    private MediaPlayer mMediaPlayer01;
    mMediaPlayer01 = MediaPlayer.create(number.this, R.raw.water);
     public boolean onTouchEvent(MotionEvent event){
         int x=(int) event.getX();
         int y=(int) event.getY();
    if(event.getAction()!=MotionEvent.ACTION_UP){
    Rect ib1,ib2,ib3,ib4,ib5,ib6,ib7,ib8,ib9;
         ib1=new Rect(30, 80, 110, 160);
         ib2=new Rect(120, 80, 200, 160);
         ib3=new Rect(210, 80, 290, 160);
         ib4=new Rect(30, 180, 110, 260);
         ib5=new Rect(120, 180, 200, 260);
         ib6=new Rect(210, 180, 290, 260);
         ib7=new Rect(30, 280, 110, 360);
         ib8=new Rect(120, 280, 200, 360);
         ib9=new Rect(210, 280, 290, 360);
    if(ib1.contains(x,y)){
    imageView1.setBackgroundResource(R.drawable.a01);
    sound();
    }
    private void sound(){
    try {if (mMediaPlayer01 != null) 
    {mMediaPlayer01.stop();
    }
    /*
    * 在MediaPlayer取得播放资源与stop()之后
     要准备Playback的状态前一定要使用MediaPlayer.prepare()
    mMediaPlayer01.prepare();
    /* 开始或回复播放 */
    mMediaPlayer01.start();

    } catch (Exception e) {
    // TODO Auto-generated catch block

    e.printStackTrace();
    }
    mMediaPlayer01.setOnCompletionListener(new  MediaPlayer.OnCompletionListener(){ public void onCompletion(MediaPlayer arg0) {
    try {
    /*
     * 解除资源与MediaPlayer的赋值关系 让资源可以为其它程序利用
     */
    mMediaPlayer01.release();


    } catch (Exception e) {

    e.printStackTrace();
    }
    }
    });
    mMediaPlayer01.setOnErrorListener(new MediaPlayer.OnErrorListener() {
    @Override
    /* 覆盖错误处理事件 */
    public boolean onError(MediaPlayer arg0, int arg1, int arg2) {
    // TODO Auto-generated method stub
    try {
    /* 发生错误时也解除资源与MediaPlayer的赋值 */
    mMediaPlayer01.release();
    } catch (Exception e) {
    e.printStackTrace();
    }
    return false;
    }
    });  
      

  2.   

    无代码怎么看问题阿,,你试着通过注册 setOnErrorListener(android.media.MediaPlayer.OnErrorListener)方法实现OnErrorListener.onError()方法来监控报的错误看下问题处在那!
      通过isPlaying()来检测是否在播放,,,或者 代码切出来  看看!