android:在媒体播放器上做一些代码特殊时间
问题描述:
我是机器人编程的新手..android:在媒体播放器上做一些代码特殊时间
我有一个媒体播放器在我的活动中播放声音。
我想在媒体播放器正在播放的特定时间上做一些代码。我的意思是我想在媒体播放器处于0到5秒的时间内做code1,并在5到14之间做code2,在14到18秒之间做code3。
这里是我的计时器代码,我不知道如何在特殊时期运行我的代码..
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView timerTextView;
long startTime = 0;
//runs without a timer by reposting this handler at the end of the runnable
Handler timerHandler = new Handler();
Runnable timerRunnable = new Runnable() {
@Override
public void run() {
long millis = System.currentTimeMillis() - startTime;
int seconds = (int) (millis/1000);
int minutes = seconds/60;
seconds = seconds % 60;
timerTextView.setText(String.format("%d:%02d", minutes, seconds));
timerHandler.postDelayed(this, 500);
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
timerTextView = (TextView) findViewById(R.id.text);
Button b = (Button) findViewById(R.id.button1);
b.setText("start");
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Button b = (Button) v;
if (b.getText().equals("stop")) {
timerHandler.removeCallbacks(timerRunnable);
b.setText("start");
} else {
startTime = System.currentTimeMillis();
timerHandler.postDelayed(timerRunnable, 0);
b.setText("stop");
}
}
});
}
@Override
public void onPause() {
super.onPause();
timerHandler.removeCallbacks(timerRunnable);
Button b = (Button)findViewById(R.id.button1);
b.setText("start");
}
}
答
这是不是最优雅的解决方案,特别是如果你所有的时间块将正好是5个秒,但如果您在媒体播放器启动时设置了initalTime,则应该可以工作。对于uptimeMillis()和其他Android计时方法的进一步资料是linked here
int initialTime= SystemTimer.uptimeMillis();
while (mediaIsRunning){
int currentTime=SystemTimer.uptimeMillis();
int elapsed=currentTime-initialTime;
if (elapsed<=5000){ // 5 seconds
//your code 1
}
else if (elapsed<=10000){ //10 seconds
//code 2
}
//etc ...
}
请出示你试过 – meda
代码尝试实现的定时器(见[这个答案](http://*.com/questions/4597690/android - 时间 - 如何)的细节)。 您可以在开始播放声音时启动计时器,并使用计时器的回调来执行每次在轨道上所需的方法。 – FMontano