2011-04-05 10 views
10

こんにちは 私はプレーヤーの位置とプレイヤーの所要時間を簡単な日付形式で表示したいと思います。あれは。 00:00:01/00:00:06。最初の部分はプレーヤーの現在の位置で、2番目の部分は期間です。 私はSimpleDateFormatを使用してこのフォーマットで期間と位置を表示しようとしましたが、出力は05:30:00/05:30:06と表示されています。MediaPlayerの位置/期間を正しく表示するにはどうすればよいですか?

time1 = new SimpleDateFormat("HH:mm:ss"); 
currentTime.setText("" + time1.format(player.getCurrentPosition()); 

私が正しく位置と持続時間をプリントアウトするにはどうすればよい:ここで

は、私が使用しているコードのですか? (そこにはいけない時間/分を表示しています)。

スワティダリリ、助けてください。

答えて

25

DateFormatは、時間間隔ではなく、日付に対して機能します。したがって、1秒の位置を取得した場合、DateFormatは、日付/時刻がカレンダーの開始から1秒後(1970年1月1日)であることを意味すると解釈します。

あなたは

private String getTimeString(long millis) { 
    StringBuffer buf = new StringBuffer(); 

    int hours = (int) (millis/(1000 * 60 * 60)); 
    int minutes = (int) ((millis % (1000 * 60 * 60))/(1000 * 60)); 
    int seconds = (int) (((millis % (1000 * 60 * 60)) % (1000 * 60))/1000); 

    buf 
     .append(String.format("%02d", hours)) 
     .append(":") 
     .append(String.format("%02d", minutes)) 
     .append(":") 
     .append(String.format("%02d", seconds)); 

    return buf.toString(); 
} 

ような何かをする必要があると思いますし、それが働いた...そんなにuの感謝

totalTime.setText(getTimeString(duration)); 
currentTime.setText(getTimeString(position)); 
+0

ような何かを。私は単純な日付形式で作ることができると思った。 – user562237

+2

Integers 'int hours =(int)(millis /(1000 * 60 * 60));' –

+1

@AhmadTKなぜ投稿を編集しなかったのですか? – sandalone

関連する問題