我有一个逐帧动画的角色捕捉它的手指。我想将捕捉的mp3剪辑应用到动画的第2帧。我想我知道应该怎么做,但我被困住了。这是动画:
darnAn = new AnimationDrawable();
darnAn.addFrame(getResources().getDrawable(R.drawable.snap1), 2400);
darnAn.addFrame(getResources().getDrawable(R.drawable.snap2), 150);
darnAn.addFrame(getResources().getDrawable(R.drawable.snap3), 150);
darnAn.addFrame(getResources().getDrawable(R.drawable.snap2), 200);
darnAn.addFrame(getResources().getDrawable(R.drawable.snap4), 200);
darnAn.setOneShot(true);
darnView = (ImageView) findViewById(R.id.darn_IV);
darnView.setBackgroundDrawable(darnAn);
darnView.post(new Runnable() {
@Override
public void run() {
darnAn.start();
}
});
mp3声音片段的代码如下所示:
SoundPool snapS;
int snapInt;
snapS = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
snapInt = snapS.load(this, R.raw.snap, 1);
所以我想我可以补充一下:
Drawable dFrame2 = ((AnimationDrawable)darnView.getBackground()).getFrame(2);
dFrame2 = snapS.play(snapInt, 1, 1, 0, 0, 1);
darnView.setBackgroundDrawable(darnAn);
之后
调用,但它不起作用,因为dFrame2是一个Drawable,而snapS是一个int。我以某种方式将drawable转换为int吗?如果是这样,我该怎么做,或者那不是解决方案?