2014-03-25 2 views
0

Я разработал код, который извлекает песни из sdcard, но моя проблема заключается в том, что я получаю длительность песни im миллисекунды. Я хочу преобразовать его в формат 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

для этого недостаточно простого адаптера-адаптера. Вам нужно будет переопределить некоторые части '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 указать количество цифр)

Смежные вопросы