2017-05-07 48 views
-1
int duration = mediaPlayer.getDuration(); 
textView = (TextView) findViewById(R.id.tvduration); textView.setText(duration); 
+0

持續時間顯示了用這種方法毫秒,但我想顯示時間的音頻像15分鐘:32秒 – ttoseeff

+0

請先做一些研究你不知道如何將毫秒轉換爲秒或分鐘? –

回答

2

MediaPlayer

以毫秒爲單位的時間,如果沒有持續可用( 例如,如果流媒體直播內容) ,返回-1。

這就是爲什麼你會從getDuration()得到的持續時間以毫秒爲單位。
你可以用它來獲取的MediaPlayer時間爲字符串:

int duration = mediaPlayer.getDuration(); 
String time = String.format("%02d min, %02d sec", 
    TimeUnit.MILLISECONDS.toMinutes(duration), 
    TimeUnit.MILLISECONDS.toSeconds(duration) - 
    TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(duration)) 
); 

然後當你在你的問題寫:

TextView textView = (TextView) findViewById(R.id.tvduration); 
textView.setText(duration); 
+1

非常感謝。你做了我的一天:) – ttoseeff

+0

Ÿ你應該再次設置「持續時間」textView? –

1
public static String milliSecondsToTimer(long milliseconds) { 
     String finalTimerString = ""; 
     String secondsString = ""; 

     //Convert total duration into time 
     int hours = (int) (milliseconds/(1000 * 60 * 60)); 
     int minutes = (int) (milliseconds % (1000 * 60 * 60))/(1000 * 60); 
     int seconds = (int) ((milliseconds % (1000 * 60 * 60)) % (1000 * 60)/1000); 
     // Add hours if there 
     if (hours == 0) { 
      finalTimerString = hours + ":"; 
     } 

     // Pre appending 0 to seconds if it is one digit 
     if (seconds == 10) { 
      secondsString = "0" + seconds; 
     } else { 
      secondsString = "" + seconds; 
     } 

     finalTimerString = finalTimerString + minutes + ":" + secondsString; 

     // return timer string 
     return finalTimerString; 
    } 
+0

我的問題已在之前的消息中解決。所以謝謝你的回答。 – ttoseeff