如何显示歌曲持续时间

雷·夏蒙

因此,我正在使用Mediastore来获取歌曲持续时间,但我需要将其转换为秒,我需要将其格式化为HH:MM:SS(Hours:Minutes:Seconds)我尝试使用TimeUnit但没有用,或者也许我没有正确实现办法

谢谢您的帮助对不起英语不好

请帮忙。SongAdapter.java

@Override
public void bindView(View view, Context context, Cursor cursor) {




    TextView title1 = (TextView) view.findViewById(R.id.titlelist);
    TextView artist1 = (TextView) view.findViewById(R.id.artistlist);
    TextView duration1 = (TextView) view.findViewById(R.id.durationlist);
    ImageView album1 = (ImageView) view.findViewById(R.id.iconlist);

     title = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));
    String artist = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST));
    String duration = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION));
    String album = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM));
    long albumId = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM_ID));
      StringBuilder titleBuild = new StringBuilder();

      titleBuild.append(title);

      if(titleBuild.length() > 35)
      {
      titleBuild.setLength(32);
      title = titleBuild.toString()+"...";
      }
      else
      {
          title = titleBuild.toString();
      }
      StringBuilder artistBuild = new StringBuilder();
      artistBuild.append(artist);
      if(artistBuild.length() > 35)
      {
      artistBuild.setLength(32);
      artist = artistBuild.toString()+"...";
      }
      else
      {
      artist = artistBuild.toString();
      }

      final Uri ART_CONTENT_URI = Uri.parse("content://media/external/audio/albumart");
        Uri albumArtUri = ContentUris.withAppendedId(ART_CONTENT_URI, albumId);

        if(albumArtUri == null){

            Picasso.with(context).load(R.drawable.default_artwork)
            .resize(300, 300).centerInside().into(album1);

        }


          Picasso.with(context).load(albumArtUri)
          .resize(300, 300).centerInside().into(album1);



duration1.setText(duration);          
title1.setText(title);
artist1.setText(artist);
}
跟随

持续时间到了之后

调用此例程(但我敢肯定还有更优雅的方法)。

public String convertDuration(long duration) {
    String out = null;
    long hours=0;
    try {
        hours = (duration / 3600000);
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        return out;
    }
    long remaining_minutes = (duration - (hours * 3600000)) / 60000;
    String minutes = String.valueOf(remaining_minutes);
    if (minutes.equals(0)) {
        minutes = "00";
    }
    long remaining_seconds = (duration - (hours * 3600000) - (remaining_minutes * 60000));
    String seconds = String.valueOf(remaining_seconds);
    if (seconds.length() < 2) {
        seconds = "00";
    } else {
        seconds = seconds.substring(0, 2);
    }

    if (hours > 0) {
        out = hours + ":" + minutes + ":" + seconds;
    } else {
        out = minutes + ":" + seconds;
    }

    return out;

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章