我使用AndEngine库创建了android动态壁纸应用程序。壁纸有一个带声音的摇摆动画。
问题是每次摆动的声音播放时,摆动动画都会滞后几毫秒。
我想知道有解决方案吗?我试过创建一个播放声音的线程,但结果仍然滞后。
代码就是这样......
public class TreeSwingSprite extends AnimatedSprite
implements IAnimationListener, IEntityModifierListener {
...
private Sound swingSound;
// this event happened when user touch the Sprite on screen
public boolean onAreaTouched(TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) {
if (pSceneTouchEvent.isActionDown()) {
...
long[] frameDuration = new long[] {
50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
...
};
final int[] frame = {
10, 9, 8, 7, 6, 5, 4, 3, 2, 1,
...
};
animate(frameDuration, frame, 0, this); // this code execute the animation of the Sprite
// play the sound
new Thread(new Runnable() {
@Override
public void run() {
if (swingSound != null) swingSound.play();
}
}).start();
}
}
如果你不了解AndEngine,纯粹的openGL ES解决方案也可以。
答案 0 :(得分:1)
没关系,滞后的原因是特定设备没有强大的硬件支持,可能是处理器。我知道,因为当我尝试使用其他设备时,它运行正常。
答案 1 :(得分:1)
无需在新主题上播放声音!