Registriert seit: 2. Sep 2004
Ort: Allgäu
246 Beiträge
Delphi 7 Enterprise
|
Re: (DSPACK) DSTrackBar läuft nicht mit bei DVD
12. Nov 2008, 16:54
Hi,
weil die DSTrackbar nicht mit DVD funktioniert...
ich habs so gemacht: DVDSlider ist eine Trackbar
Delphi-Quellcode:
FilterGraph.Play;
(FilterGraph as IDVDInfo2).GetTotalTitleTime(TotalTime,TimeFlag);
DVDTitleEndPos := MRMaster.HoursToMiliSec(TotalTime.bHours, TotalTime.bMinutes, TotalTime.bSeconds);
DVDSlider.Max := DVDTitleEndPos;
//------------------------
procedure TMRDVD.FilterGraphDVDCurrentHMSFTime(sender: TObject;
HMSFTimeCode: tagDVD_HMSF_TIMECODE; TimeCode: tagDVD_TIMECODE);
var
TotalTime:TDVDHMSFTimeCode;
TimeFlag:ULONG;
begin
(FilterGraph as IDVDInfo2).GetTotalTitleTime(TotalTime,TimeFlag);
DVDTitleEndPos := MRMaster.HoursToMiliSec(TotalTime.bHours, TotalTime.bMinutes, TotalTime.bSeconds);
DVDSlider.Max := DVDTitleEndPos;
with HMSFTimeCode do begin
Label1.Caption := format('%2.2d:%2.2d:%2.2d',[bHours, bMinutes ,bSeconds]);
DVDCurrentPos := MRMaster.HoursToMiliSec(HMSFTimeCode.bHours, HMSFTimeCode.bMinutes, HMSFTimeCode.bSeconds);
if not DVDSliderChanging then DVDSlider.Position := DVDCurrentPos;
if not ((Playing or Pause) OR RadioRunning) then begin
if Deskdisplay.Visible AND ((deskdisplay.Label2.Caption = siLang1.GetTextOrDefault('IDS_21' (* 'Gestoppt' *) )) OR (deskdisplay.label2.Caption = 'DVD'))
then Deskdisplay.Runtimelabel.Caption := Label1.Caption;
end;
End;
end;
procedure TMRDVD.DVDSliderMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
DVD_SetTrackTime(DVDSlider.Position);
DVDSliderChanging := False;
end;
procedure TMRDVD.DVD_SetTrackTime(NewValue:integer);
var
DvdControl2: IDvdControl2;
DvdCmd: IDvdCmd;
HMSFTime: TDVDHMSFTimeCode;
begin
if FilterGraph.Active then
begin
if Succeeded(FilterGraph.QueryInterface(IDvdControl2, DvdControl2)) then begin
DVDSlider.Enabled := false;
HMSFTime := MRMaster.MiliSecToHours(NewValue);
DVDCurrentPos := NewValue;
try
DvdControl2.PlayAtTimeInTitle(StrToInt(Label4.Caption),HMSFTime,DVD_CMD_FLAG_Flush,DvdCmd);
except
OSDLabel.Caption := siLang1.GetTextOrDefault('IDS_318' (* 'Kommando nicht möglich' *) );
ActivateOSD;
end;
DvdCmd := nil;
DVDControl2 := nil;
DVDSlider.Enabled := true;
end;
end;
end;
damit klappts...vielleicht hilft dir das bischen
Tom Just DO it
|
|
Zitat
|