2016-12-16 14 views
0

音声を再生するときに画像が変化し始めるアプリケーションを構築しています。 オーディオがonclickボタンを再生(開始)すると、画像もまた異なる遅延で変化し始め、私もオーディオを一時停止することができます。私は混乱に直面して取得しています問題は、私はもう一度ボタンをクリックしたときに、私のオーディオが再開された画像は、次の変更を開始するように、どのように私は、同様に私の画像を一時停止することができ 音声を一時停止したときに変化する画像を一時停止

、私は私のオーディオを一時停止したときに、ということです彼らが一時停止していた場所から。

private Button btn_play; 
MediaPlayer mp; 
int duration; 
private ImageView imageView; 
Handler handler = new Handler(); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.layout_names); 
    int resID = getResources().getIdentifier("audio", "raw", getPackageName()); 
    mp = MediaPlayer.create(NamesOfALLAH.this, resID); 
    duration = mp.getDuration(); 
    btn_play = (Button) findViewById(R.id.btn_play); 
    imageView = (ImageView) findViewById(R.id.imageView_Names); 
    btn_play.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (mp.isPlaying()) { 

       mp.pause(); 
       btn_play.setText("Play"); 

      } else { 
       mp.start(); 
       btn_play.setText("Pause"); 
       changeImage1(); 
       changeImage2(); 
       changeImage3(); 
       changeImage4(); 
       changeImage5(); 


      } 


     } 
    }); 

} 


public void changeImage1() { 

    handler.postDelayed(new Runnable() { 
     @Override 
     public void run() { 

      imageView.setImageResource(R.drawable.a1); 

     } 

    }, 6000); 

} 

public void changeImage2() { 


    handler.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      imageView.setImageResource(R.drawable.a2); 


     } 
    }, 8000); 

} 

public void changeImage3() { 




     handler.postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       imageView.setImageResource(R.drawable.a3); 


      } 
     }, 10000); 
    } 




public void changeImage4() { 

    handler.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      imageView.setImageResource(R.drawable.a4); 


     } 
    }, 11000); 

} 

public void changeImage5() { 

    handler.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      imageView.setImageResource(R.drawable.a5); 


     } 
    }, 12000); 
} 

`

答えて

1

ImageSwitcherを使用し、それはあなたのための作業の一部を行います。いずれにしても、自分でアニメーションを作成する場合は、すべての変更を全体として考慮する必要があります。たとえば、実行可能ファイルをハンドラに再ポストすることができます。擬似コード:

handler.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      // set the image you want 
      if (mustContinue) 
        handler.postDelayed(this, time); 
     } 
    }, 10000); 

再生/一時停止ボタンを押すたびにboolean mustContinueを切り替えます。

EDIT:例として チェックthis

関連する問題