首先说一下,我不是太闲的无聊才在这里码代码的,我是因为要交JAVA第一学期的一个大作业,而我的作业就是一个迷你的音乐播放器(等我完工了,代码还会发表到我的梯云上哦 ),而这就需要获取歌曲的时间,于是博主就总结了一些方法,最后还是认为这种最好,而且是绝对执行版的!
有不少梯友们可能会因为各种原因需要获取音乐的长度,而这个时候呢,怎么获取就成了一种问题。我们大多可以在百度上百度到很多代码,博客园,CSDN,他们提供了几种方法,包括博猪先前也发表了一篇文章,里边列了 3 中方法。可是就连我对这 3 中都不太满意,最后呢,博猪就上我的代码了!
public static String getAudioPlayTime(String filePath){ FileInputStream stream; int time = 0; try { stream = new FileInputStream(new File(filePath)); int b = stream.available(); Bitstream bt = new Bitstream(stream); Header h = bt.readFrame(); time = (int) h.total_ms(b); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (BitstreamException e) { e.printStackTrace(); } int i = time/1000; //获取歌曲的秒数。 //由于一般表示时长的格式都是 **:**,于是呢,博猪就在这里改为这种形式 int m = i/60; //获取分钟数 int s = i%60; //获取除去分钟后的秒数,即对 60 取余 // System.out.println("mp3 时长为:"+i+"s"); String longtime=new String(m+":"+s); return longtime; //返回 String } }
喜欢本站的话,不妨添加以下收藏吧!快捷键:Ctrl+D
如果感觉文章对你有帮助,不介意的话,可以打赏一下穷穷的博主哦!
转载请注明:转自TeenShare 梯云分享