音频暂停时暂停变化的图像

问题描述:

我正在构建一个应用程序,其中播放音频时图像开始变化。 当音频播放(开始)onclick按钮时,图像也开始改变不同的延迟,我也可以暂停我的音频。我现在面临和越来越迷惑的问题是,当我停下我的声音,音频暂停时暂停变化的图像

如何暂停我的图片一样,所以,当我再次单击该按钮,我的声音简历和图像开始下一个改变从他们被暂停的地方。

private Button btn_play; 
MediaPlayer mp; 
int duration; 
private ImageView imageView; 
Handler handler = new Handler(); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.layout_names); 
    int resID = getResources().getIdentifier("audio", "raw", getPackageName()); 
    mp = MediaPlayer.create(NamesOfALLAH.this, resID); 
    duration = mp.getDuration(); 
    btn_play = (Button) findViewById(R.id.btn_play); 
    imageView = (ImageView) findViewById(R.id.imageView_Names); 
    btn_play.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (mp.isPlaying()) { 

       mp.pause(); 
       btn_play.setText("Play"); 

      } else { 
       mp.start(); 
       btn_play.setText("Pause"); 
       changeImage1(); 
       changeImage2(); 
       changeImage3(); 
       changeImage4(); 
       changeImage5(); 


      } 


     } 
    }); 

} 


public void changeImage1() { 

    handler.postDelayed(new Runnable() { 
     @Override 
     public void run() { 

      imageView.setImageResource(R.drawable.a1); 

     } 

    }, 6000); 

} 

public void changeImage2() { 


    handler.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      imageView.setImageResource(R.drawable.a2); 


     } 
    }, 8000); 

} 

public void changeImage3() { 




     handler.postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       imageView.setImageResource(R.drawable.a3); 


      } 
     }, 10000); 
    } 




public void changeImage4() { 

    handler.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      imageView.setImageResource(R.drawable.a4); 


     } 
    }, 11000); 

} 

public void changeImage5() { 

    handler.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      imageView.setImageResource(R.drawable.a5); 


     } 
    }, 12000); 
} 

`

使用ImageSwitcher,它做了一些适合你的工作。无论如何,如果您想自己创建动画,则必须将所有更改视为一个整体。例如,您可以将可运行的代码重新发布到处理程序。伪代码:

handler.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      // set the image you want 
      if (mustContinue) 
        handler.postDelayed(this, time); 
     } 
    }, 10000); 

每次按播放/暂停按钮时都切换布尔值mustContinue。

编辑: 检查this作为一个例子。