Sincronismo de Animation e MediaPlayer

Olá galera,

estou tendo um problema para sincronizar uma Animation com o MediaPlayer que deveria ser executado enquanto ela é exibida.
Eu tenho 4 ImageButtons cujo background é uma Animation de aproximadamente 1 segundo e baseada em troca de figuras. Tenho também uma sequencia de Elementos que internamente apontam pra um dos ImageButtons. Ao percorrer a sequencia de Elementos quero que, para cada Elemento, o botão especifico exiba a Animation e um MediaPlayer execute, teoricamente ao mesmo, tempo um determinado mp3 de 1 segundo de duração. Ou seja, quero que a cada 1 segundo um dos botões seja animado e um som seja executado ao mesmo tempo.
O que acontece é o seguinte: Quando executo o loop do código seguinte os MediaPlayers são executados sequencialmente(assim como esperado), mas os Animations são apresentados todos ao mesmo tempo e só após a execução dos MediaPlayers.

Já tentei usar bloco Syncronized, Thread.sleep(1000), Thread.yield() e outras coisas que já nem lembro mais, mas o resultado foi só um atrazo maior na exibição das Animations.
Por favor, se alguem souber como resolver isso ou outra maneira de fazer esse tipo de animação me ajude por que eu já estou ficando louco com esse problema.

Desde já agradeço!

public void start(View botao, int som){
    	sequencia.add(new Elemento());
    	sequencia.add(new Elemento());
    	AnimationDrawable frameAnimation;
    	MediaPlayer mp;
    	
    	for(Elemento element:sequencia){	
    		frameAnimation=(AnimationDrawable) botao.getBackground();
    		frameAnimation.stop();
    		frameAnimation.start();
    		mp = MediaPlayer.create(ctx, som);
			mp.start();
    	}    	
    }