有没有办法获取一个VCD文件的时间总长?最好能跟在超级解霸里所显示的总时间一样!(50分)

  • 主题发起人 主题发起人 thisxu
  • 开始时间 开始时间
T

thisxu

Unregistered / Unconfirmed
GUEST, unregistred user!
有什么办法?最好获得的时间总长能跟超级解霸里所显示的一样!
 
用delphi自带的MediaPlayer open那个媒体文件后就能取到了
好像是Form1.MediaPlayer1.Length;吧

关注其他方法
 
不行,WMP里所显示的时间跟在超级解霸里所显示的不一样,有时会相差10多秒。
我本人想到一个很笨的方法,其实是我爸想到的,开始我还笑他呢,不过他的办法挺准的!
就是:VCD文件大小 div 1024 /176.1 所得的数就是VCD的时间总长(单位是秒),这个办法还不错,一般VCD文件不是很大时完全准确,如果有400M-600M的话就会差1、2秒。
可是我还是想问问有没有更准的办法`1
 
应该以Windows Media Player的为准!长度会四舍五入的,我也有个笨方法。
var
dsMediaDet: IMediaDet;
begin

if CoCreateInstance
(CLSID_MediaDet, nil, CLSCTX_INPROC, IID_IMediaDet, dsMediaDet) = S_OK then

if dsMediaDet.put_FileName(Media_FileName) = S_OK then

if dsMediaDet.get_OutputStreams(dsMediaStreams) = S_OK then

dsMediaDet.get_StreamLength(长度)

得到的应该是频,自己转吧
 
不是啊,我是用解霸来播的,所以当然要让得到的时间跟解霸中一样的啊。
Windows Media Player跟解霸显示的有一些差距的!
 
接受答案了.
 
后退
顶部