布局:
<Chronometer android:id="@+id/played_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:textSize="13sp" android:textColor="@color/music_text_white" android:text="00:00"/>代码:
private void countTime() { if ( mRecordTime != 0 ){ //暂停后继续计时 played_time_view.setBase( played_time_view.getBase() + (SystemClock.elapsedRealtime()-mRecordTime) ); }else if ( isForward ){ //快进 seekTime秒 默认+20s if ( seekTime > 0 ){ played_time_view.setBase( played_time_view.getBase() - seekTime*1000 ); }else { played_time_view.setBase( played_time_view.getBase() - 20*1000 ); } isForward = false; }else if ( isReverse ){ //快退seekTime秒 默认-20s long time = 0l; if ( seekTime > 0 ){ time = played_time_view.getBase() + seekTime*1000; }else { time = played_time_view.getBase() + 20*1000; } if ( time > SystemClock.elapsedRealtime() ){ played_time_view.setBase( SystemClock.elapsedRealtime() ); }else { played_time_view.setBase( time ); } isReverse = false; }else if ( isJump ){ played_time_view.setBase( SystemClock.elapsedRealtime() - seekTime*1000); isJump = false; }else { //设置时间基点 played_time_view.setBase( SystemClock.elapsedRealtime() ); } played_time_view.start(); }
private void stopCountTime(){ played_time_view.stop(); mRecordTime = SystemClock.elapsedRealtime(); } private void resetCountTime(){ played_time_view.setBase( SystemClock.elapsedRealtime() ); played_time_view.stop(); mRecordTime = 0L; mRecordTime = SystemClock.elapsedRealtime(); }