通过MediaPlayer 的 getDuration() 是可以获取MP3的播放时长,
但是遍历MP3文件的时候就需要new 一个player 对象
不知道还有没有其他方式获取MP3文件播放时长
下面是我的代码
public static MediaPlayer player;
/**
* 获取音乐播放时长
* @return
*/
private String getMusicTime() {
int musicTime = player.getDuration() / 1000;
return musicTime / 60 + ":" + musicTime % 60;
}
------解决方案--------------------
直接查数据库
时长是放在media的数据库的
------解决方案--------------------
直接读就可以
String[] mCursorCols = new String[] { MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.ARTIST, MediaStore.Audio.Media.ALBUM,
MediaStore.Audio.Media.DURATION };
mCursor = getContentResolver().query(MUSIC_URL, mCursorCols,
null, null, null);
// 获取歌曲播放时长
public int getDurationByPosition(Cursor c, int position) {
c.moveToPosition(position);
int durationIndex = c.getColumnIndex(MediaStore.Audio.Media.DURATION);
int info = c.getInt(durationIndex) / 1000;
return info;
}