PDA

View Full Version : مشکل در زمان media player



Batman
جمعه 25 خرداد 1386, 03:44 صبح
دوستان من یه برنامه شبیه media player با استفاده از کامپوننت خود دلفی کردم
برای به دست اوردن کل زمان یک فایل صوتی و زمان فعلی از یه فرمول که تو همین سایت مطرح شده بود
استفاده کردم
طول تراک تقسیم بر 1000 =:a
سپس a تقسیم بر 60 و a mode 60
اما برای بعضی از فایلها حدود 20 تا 30 ثانیه فرق میکنه
تازه فایلهای تصویری رو هم کاملا زمانشون اشتباه میده

MNosouhi
جمعه 25 خرداد 1386, 09:03 صبح
این مشکلت رو حل میکنه :

TheLength:=MainForm.MPlayer.Length;
Label1.caption:=IntToStr((TheLength div 1000) div 60)+' : '+IntToStr((TheLength div 1000) mod 60);

ealvandi
جمعه 25 خرداد 1386, 10:54 صبح
فکر میکنم به کیفیت فایل هم بستگی داشته باشه.

Batman
جمعه 25 خرداد 1386, 17:40 عصر
آقای nosouhi این روشی رو که گفتید امتحان کردم اما بارم فایده نداشت
خودم هم که به اون اشاره کرده بودم
دوستان راه حل دیگه ای ندارید

Batman
شنبه 26 خرداد 1386, 07:43 صبح
کسی نظری نداره

Valadi
شنبه 26 خرداد 1386, 07:49 صبح
این هم کد مربوط به این موضوع :

Procedure TForm1.Timer1Timer(Sender: TObject);
Var
TheLength,Posi,SummaMin,SummaSec: Integer;
begin

//Progress Bar to check if the track is playing
if Progress.Max<>0 then Begin
Progress.Position := Mediaplayer1.Position;

//Gets the length of the selected track
TheLength := Mediaplayer1.TrackLength[ListBox1.ItemIndex];

//gets the current position of the track
Posi := Mediaplayer1.Position;

//Caculates Minutes
SummaMin := ((TheLength - Posi) div 1000) Div 60;

//Calculates Seconds
SummaSec := ((TheLength - Posi) Div 1000) Mod 60;

//Adds zero if Seconds are less then ten
If SummaSec < 10 Then
Label2.Caption := '0' + IntToStr(SummaSec)
Else
Label2.Caption := IntToStr(SummaSec);

//Minutes
Label1.Caption := IntToStr(SummaMin);

End;