我正在尝试使用 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 分钟。我尝试了多个文件,效果总是一样的。可能是什么原因?