1
MP3セットの正確な時間を得ようと苦労しています。私はMP3SPI 1.9.5 libraryを使って生成された以下のプロパティを持っています。MP3 Duration Java
// mp3.crc=true
// mp3.copyright=true
// mp3.padding=false
// mp3.channels=1
// mp3.version.mpeg=2.5
// mp3.length.bytes=6425480
// mp3.framerate.fps=27.777779
// mp3.framesize.bytes=140
// duration=1606356000
// mp3.version.layer=3
// mp3.length.frames=44621
// mp3.frequency.hz=8000
// mp3.header.pos=0
// mp3.bitrate.nominal.bps=16000
// mp3.vbr.scale=0
// mp3.version.encoding=MPEG2DOT5L3
// mp3.mode=3
// mp3.vbr=false
// mp3.original=false
私が読んでいるファイルの再生時間はiTunesで47:35、Macプレビューで48:50です。
私は、ライブラリを使用してJavaで時間を得るとき、私は26:46取得:私は多くの幸運を持っていないよ、私はダム何かをやっている場合、私は思っていた、またはI場合
AudioFileFormat fileFormat = AudioSystem.getAudioFileFormat(f);
Map<?, ?> properties = ((TAudioFileFormat) fileFormat).properties();
String key = "duration";
long duration = ((Long) properties.get("duration"))/1000;
{
String frameBased = String.format("Duration Tag: %d hours, %d min, %d sec",
TimeUnit.MILLISECONDS.toHours(duration),
TimeUnit.MILLISECONDS.toMinutes(duration),
TimeUnit.MILLISECONDS.toSeconds(duration) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(duration))
);
System.out.println(frameBased);
}
を私の実際の長さを計算するのにMP3タグ内の情報を使うことができますか? iTunesが正しくそれを報告しているとすれば、私はできるはずだと思う。
残念なことに、これも*唯一のフェールセーフな方法です。 –
私はあなたがその真の長さを決定するためにフレームごとにMP3ファイルをスキャンしなければならないと思います。 – Nayuki