0

ピアノアプリに録音を実装したい。これを行うために、各サウンドの再生時間と、どのサウンドが再生されたかを LinkedList に保存します。この時間と音で録音された音楽 (音のシーケンス) を再生するには、指定された時間に各音を再生する必要があります。どうやってこれを行うのですか?これは、1つのサウンドのコードの一部です(注):

public class MainActivity extends Activity {

double StartTime;
double millis;
sound_pool snd;
LinkedList<list> rec_list = new LinkedList<list>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    // Create an instance of our sound manger
    snd = new sound_pool(getApplicationContext());
    // Set volume rocker mode to media volume
    this.setVolumeControlStream(AudioManager.STREAM_MUSIC);

    Button btn = (Button) findViewById(R.id.button1);       
    Date dt=new Date();
    long mil=dt.getTime();

    btn.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {

            if (event.getAction() == MotionEvent.ACTION_DOWN ) 

               {
                snd.play_s_r_1();                   
                Date dt=new Date();
                long mil=dt.getTime();                  
                rec_list.add(new list(mil,"s_r_1"));        
               }
             return true;                   
        }
    });  // end of ontouch listener 

} //end of oncreate
} //end of activity    
4

1 に答える 1

0

次のコードを試してみてください。したがって、onFinish() は 1 秒 (1000 ミリ秒 = 1 秒) 後に呼び出されます。

   player = MediaPlayer.create(getApplicationContext(), R.raw.beepsound);
 player.start();

CountDownTimer timer = new CountDownTimer(1000, 1000) {

@Override
public void onTick(long millisUntilFinished) {
   // Nothing to do
}

@Override
public void onFinish() {
    if (player.isPlaying()) {
         player.stop();
         player.release();
    }
}
};
timer.start(); 

参照: http://developer.android.com/reference/android/os/CountDownTimer.html#CountDownTimer(long , long)

于 2013-04-19T14:38:52.980 に答える