音频暂停时暂停变化的图像
问题描述:
我正在构建一个应用程序,其中播放音频时图像开始变化。 当音频播放(开始)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作为一个例子。