AndEngineライブラリを使用してアンドロイドライブ壁紙アプリケーションを作成しました。壁紙にはサウンド付きのスイングアニメーションがあります。スプライトのアニメーションのサウンドを作成する
問題は、スイングサウンドが再生されるたびに発生し、スイングアニメーションは数ミリ秒間遅れることになります。
私はこのために解決策があることを知りたいですか?私はサウンドを再生するためのスレッドを作成することによって試してみましたが、結果はまだ遅れていました。
コードを使用すると、AndEngineがわからない場合は、純粋なOpenGL ESのソリューションがあまりにも大丈夫です
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();
}
}
...このようなものです。