2012-02-22 56 views

回答

2

對於大多數格式,長度不在標籤中。

許多圖書館(和媒體播放器),像TagLib,estimate它通過計算文件的幾百千字節(比特率)的乘積的長度以秒爲單位。有時候這種情況會非常糟糕,但是,令人驚訝的一部分時間,它運行良好。

+0

啊,這很有趣!感謝你的回答。我沒有在jaudiotagger中看到這個功能,所以我想我應該自己實現它,或者找到另一個庫。謝謝! – Nico 2012-02-22 18:00:30

7

正如剛纔的答覆說,軌道長度不存儲在標籤中,但可以從音頻本身中得到,這就是爲什麼它通過audioheader對象入店,而不是標籤本身即

AudioFile audioFile = AudioFileIO.readFile("/somefile.mp3"); 
System.out.println(audioFile.getAudioHeader().getTrackLength()); 

如果它是一個MP3,你都可以得到格式化爲毫米徑跡輸出nicel:SS

System.out.println((Mp3AudioHeader)audioFile.getHeader().getTrackLengthAsString()); 

new MP3File("/somefile.mp3").getMP3AudioHeader().getTrackLengthAsString();