Определение информации про медиафайл

09.11.2009
665
1
#1
Как определить инфу о медиа файле?
openread(определяет длину трека),mediaplayer1 -медиаплееры
fs-Tfilestream(определяет размер файла)
playlist- плейлист созданий сторонним компонентом TAdvSmoothListBox(в дальнейшем будет заменен на другой компоненнт)
Код:
procedure TForm1.openClick(Sender: TObject);
begin
if opendialog1.Execute then
try
fs:=Tfilestream.create(opendialog1.FileName,fmopenread);
mfs:=inttostr(FS.Size);
fs.free;
openread.FileName:=opendialog1.filename;
openread.Open;
openread.Stop;
mfl:=inttostr(openread.Length);
mfn:=ExtractFileName(opendialog1.filename);
mft:=ExtractFileExt(opendialog1.filename);
mfn:=copy(mfn,0,pos(mft,mfn)-1);
mft:=copy(mft,2,length(mft));
mfls:=trunc(strtoint(mfl)/1000);
mflm:=trunc(mfls/60);
mflh:=trunc(mflm/60);
mfls:=trunc(mfls/1000);
if mflm>60 then mflm:=mflm-60;
if (mflm=0)and(mflh=0) then mfl:='0:'+inttostr(mfls);
if mflh=0 then mfl:=inttostr(mflm)+':'+inttostr(mfls) else mfl:=inttostr(mflh)+':'+inttostr(mflm)+':'+inttostr(mfls);
openread.Close;

if form2.playlist.Items.Count=0 then

begin
mediaplayer1.FileName:=opendialog1.filename;
mediaplayer1.Open;
mediaplayer1.Play;
mediaplayer1.DisplayRect:=form3.ClientRect;
mediaplayer1.TimeFormat:=tfmilliseconds;
timer1.Enabled:=true;
if mft='.avi' then form3.Show;
end;

form2.playlist.Items.Add;
plitems:=plitems+1;//переменная отвечающая за количество треков в плейлисте
form2.playlist.Items[plitems].Caption:=mfn;
form2.playlist.Items[plitems].Info:=mfl;
form2.playlist.Items[plitems].Notes:=mft;



except
Showmessage('Не могу открыть файл');

end;
end;
Проблема такова при повторном добавлении трека он не добавляетса, наскоко я понял то потому что етот файл уже проигрываетса. Как ето исправить(без пороверки ест ли етот файл в плейлисте), или может ктото знает другой способ?