2012-02-22 5 views
1

アプリケーションのようなメディアプレーヤーでJAudioTaggerを使用して、各曲のメタデータを取得しようとしていますが、トラック期間のフィールドが表示されません。私は1つでなければならないと確信しているが、私はそれを見つけることができないとカップルの検索は何も出ていない。私は見ています:http://www.jthink.com/jaudiotagger/tagmapping.htmlとjavaドキュメントで。JAudioTaggerを使用して継続時間を取得しますか?

誰にも分かりませんか?何か助けてくれてありがとう!

答えて

2

ほとんどのフォーマットでは、長さはタグにありません。

TagLib、estimateのような多くのライブラリ(およびメディアプレーヤー)は、数百キロバイトのファイル(ビットレート)の長さを数秒で計算し、それを乗算することであなたに役立ちます。時にはこれは恐ろしく間違っていますが、驚くほどの部分ですが、うまくいきます。

+0

ああ、面白い!答えをありがとう。 jaudiotaggerに実装されているこの機能は表示されないので、自分で実装するか、別のライブラリを見つける必要があります。ありがとう! – Nico

7

以前の回答は、トラックの長さはタグに格納されていないが、オーディオ自体に由来することができ、それは

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

すなわちaudioheaderオブジェクトではなく、タグ自体を介しづけしている理由があるようそれはmp3であれば、あなたはすべてミリメートルとしてフォーマット軌跡長出力nicelを得ることができます:ssの

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

または

new MP3File("/somefile.mp3").getMP3AudioHeader().getTrackLengthAsString(); 
関連する問題