2014-03-25 112 views
0

我開發了一個從sdcard中檢索歌曲的代碼,但是我的問題是我正在接收歌曲持續時間毫秒。我想將它轉換爲格式h:m:s。但失敗了。 這裏是我的code`不能將歌曲的持續時間從毫秒轉換爲格式h:m:s

public class SongsActivity extends ListActivity { 
    SimpleCursorAdapter adapter; 
    MediaPlayer myMediaPlayer; 
    private Utilities utils; 
    /** Called when the activity is first created. */ 
    @SuppressWarnings("deprecation") 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     findViewById(R.id.dura); 

     String[] from = { 
      MediaStore.MediaColumns.TITLE, MediaStore.Audio.Media.ARTIST, MediaStore.Audio.Media.ALBUM, MediaStore.Audio.Media.DURATION}; 
     int[] to = { 
      R.id.title, R.id.artist, R.id.album, R.id.dura}; 


     @SuppressWarnings("deprecation") 
     Cursor cursor = managedQuery(
      MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, 
      null, 
      null, 
      null, MediaStore.Audio.Media.TITLE); 

     adapter = new SimpleCursorAdapter(this, 
     R.layout.custom_list_item, cursor, from, to); 
     setListAdapter(adapter); 
    } 

任何一個請幫我告訴我如何我可以從幾毫秒改變MediaStore.Media.Duratio到H:M:S。預先感謝您的幫助

+1

[http://stackoverflow.com/questions/9027317/how-to-convert-milliseconds-to-hhmmss-format](http://stackoverflow.com/questions/9027317/how -to-convert-milliseconds-to-hhmmss-format) –

+0

SimpleCursorAdapter不足以滿足這個要求。你需要重寫'bindView'或'getView'的某些部分 – njzk2

回答

0

假設你已經在毫秒的時間(ms)

String.format("%02d : %02d : %02d", 
TimeUnit.MILLISECONDS.toHours(ms), 
TimeUnit.MILLISECONDS.toMinutes(ms) - 
TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(ms)), 
TimeUnit.MILLISECONDS.toSeconds(ms) - 
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(ms))); 

上面的代碼將其轉換爲HH : MM : SS(注意:%02d指定的位數)

3

甲瑣碎DateUtils.formatElapsedTime

DateUtils.formatElapsedTime(timeInMillis); 

documentation

相關問題