如何自动识别播放格式(100分)

C

cnbobo

Unregistered / Unconfirmed
GUEST, unregistred user!
我写了一个播放器,是以文件的后缀名来识别是用REAL或用windows media 来播放,我的电脑
里有几个MPG的MTV,有的在REAL能放,有的在windows media 能放,如何能做到自动选择
windows media 或REAL。
还有如何得到RM的时间。
下面是我播放的一源程序:
procedure TForm1.Image3Click(Sender: TObject);
var Thelength:integer;
begin

MediaPlayer1.Close;
RealAudio1.DoStop;
if ListBox1.Items.Count<>0 then

begin

if ExtractFileExt(listbox1.Items.Strings[k])='.rm'then

begin

RealAudio1.source:=listbox1.Items.Strings[k];
label3.Caption:=listbox1.Items.Strings[k];
//Thelength:=Realaudio1.GetLength;
//label1.Caption:= IntToStr(thelength div 60000 div 60)+':'+IntToStr(thelength div 60000 mod 60)+':'+IntToStr(thelength div 1000 mod 60);
realaudio1.DoPlay;
form1.RealAudio1.SetControls('ImageWindow');
form1.RealAudio1.Visible:=True;
realaudio1.setfullscreen;
timer2.Enabled:=false;
end
else

begin

MediaPlayer1.FileName:=listbox1.Items.Strings[k];
label3.Caption:=listbox1.Items.Strings[k];
MediaPlayer1.Open;
Mediaplayer1.TimeFormat:=tfMilliseconds;
Thelength := Mediaplayer1.Length;
label1.Caption:= IntToStr(thelength div 60000 div 60)+':'+IntToStr(thelength div 60000 mod 60)+':'+IntToStr(thelength div 1000 mod 60);
d1:=(thelength div 60000 div 60 *3600)+(thelength div 60000 mod 60 *60)+(thelength div 1000 mod 60);
d2:=0;
mediaplayer1.Display:=Panel5;
panel5.Realign;
mediaplayer1.DoubleBuffered:=true;
mediaplayer1.DisplayRect:=rect(0,0,panel5.Width,panel5.Height);
timer2.Enabled:=true;
RealAudio1.Visible:=false;
mediaplayer1.Play;
end;

end;

end;
 
在注册表中根据扩展名搜索关联播放程序。
 
应该是根据文件扩展名来判断,windows的Mediaplayer也是这么做的.
 
问题是有几个MPG的MTV,有的在REAL能放,有的在windows media 能放,如果向这种
mms://202.101.165.249/fm1032没有扩展名又怎么办,真是伤脑筋
 
笨办法,先用 mediaplay 播,要是不行,再尝试 real :)
 
关注。
像这样
>>label1.Caption:= IntToStr(thelength div 60000 div 60)+':'+IntToStr(thelength div 60000 mod 60)+':'+IntToStr(thelength div 1000 mod 60);
>>d1:=(thelength div 60000 div 60 *3600)+(thelength div 60000 mod 60 *60)+(thelength div 1000 mod 60);
大概对rm文件不起作用的。
 
哈,如果用神龙卡来播放MPG文件就可以用指令来识别
 
每种扩展文件的信息都是存储在文件的头部分,你自己分析一下就知道了。
 
关注!!
 
使用注册表吧,比较方便
 
TO journer
注册表怎么实现呢?
 
多人接受答案了。
 
顶部