soundPool不在onAnimationStart内部循环播放

时间:2015-10-26 06:44:25

标签: android animation soundpool

我有一个ImageView数组,ImageViews会相互缩放。 现在我想在循环动画的onAnimationStart上播放短叮声(持续时间不到一分钟)。

一切正常声音仅适用于第一个。

public void AnimationAtEnd() {

    for (ck = 0; ck < totalCount; ck++) {

            ScaleAnimation scale = new ScaleAnimation(0f, 1.6f,0f,1.6f,
                    Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);

            scale.setInterpolator(new LinearInterpolator());
            scale.setStartOffset(ck * 600);
            scale.setDuration(600);
            scale.setAnimationListener(new Animation.AnimationListener() {
                @Override
                public void onAnimationStart(Animation animation) {    
                       mySoundPool.play(2, 1, 1, 1, 0, 1);          
                }

                @Override
                public void onAnimationEnd(Animation animation) {

                }

                @Override
                public void onAnimationRepeat(Animation animation) {

                }
            });

            images_cen[ck].startAnimation(scale);

        }
    }
}

以下是我定义 soundPool和加载声音的方式。

mySoundPool = new SoundPool(
                3,
                AudioManager.STREAM_MUSIC,
                0
        );
    mySoundPool.load(this, R.raw.circuit, 1);
    mySoundPool.load(this, R.raw.ding, 1);
    mySoundPool.load(this, R.raw.block, 1);

我该怎么做?或者问题是什么???

PS1:

好的,我将soundPool.play()添加到onAnimationEnd,它运行正常。所以soundPool没有任何问题。我认为它来自动画方面

1 个答案:

答案 0 :(得分:1)

即使您设置onAnimationStart的{​​{1}},images_cen[ck].startAnimation(scale);也会在startOffset后不久被调用。

我建议你改用Animation

Animator