DirectShow でメディア ファイルの長さを取得しようとしています。次のコード (C#) を使用します。
var seekingParser = filter as IMediaSeeking;
if (seekingParser != null)
{
long duration;
if (seekingParser.SetTimeFormat(TimeFormat.MediaTime) == 0
&& seekingParser.GetDuration(out duration) == 0)
track.Duration = duration / 10000000f;
}
メディアファイルの長さを秒単位で取得します。ただし、3 ~ 4 分の MP3 ファイルを開こうとすると、track.Duration が 11 ~ 12 分になります。複数のファイルを試しましたが、効果は常に同じです。その理由は何ですか?