关于如何取得asf、wma等流媒体文件的播放时间问题(50分)

  • 主题发起人 主题发起人 hailang_zh
  • 开始时间 开始时间
H

hailang_zh

Unregistered / Unconfirmed
GUEST, unregistred user!
我在论坛上找了一些方法,下面这个方法是最好的,但是有一个很大的效率问题,如果文件比较大,要处理很久的。

if OpenDialog1.Execute then

begin

MediaPlayer1.FileName := OpenDialog1.FileName;
MediaPlayer1.Open;
MediaPlayer1.TimeFormat := tfMilliseconds;
ShowMessage(IntToStr(MediaPlayer1.Length DIV 1000));//单位为秒
end;


我现在要做一个播发列表:
文件名 大小 播放时间(秒)
aaaaa.asf 235461 25635
bbbbb.wma 3253245 461321
…………………………………………

我想应该不需要每条记录都去调用一下MediaPlayer1去取得播放时间吧?效率很低的。

谁还有更好的方法来取得播放时间啊?能否用api之类的东西去的(就像取文件的创建日期)。
 
估计没有类似API。
好象winamp也有类似问题:如果列表有许多歌目,而且参数设置为:载入时取得标题,
则在打开Winamp时硬盘灯一直在闪,机子运行变慢,效率很不好,
我经常设为:播放时显示标题,这样就比较不影响载入大量歌目时的系统速度,
只是就不能立即看到歌曲标题与时间了。你是否可以借鉴一下,让用户有更多选择。
 
后退
顶部