Thema: Delphi Problem mit DSPack

Einzelnen Beitrag anzeigen

Paul0703

Registriert seit: 24. Sep 2008
Ort: Halle(Saale)
138 Beiträge
 
Delphi 7 Professional
 
#1

Problem mit DSPack

  Alt 5. Nov 2008, 12:19
Hallo,
ich habe ein komisches problem mit dem DSPack. ich schreibe gerade einen kleinen MediaPlayer mithilfe des DSPacks.
Jetzt habe ich festgestellt, dass das Programm zwar auf meinem eigenen PC läuft, aber nicht auf anderen PCs, zumindest nicht, wo ich es getestet habe
Wenn ich eine DVD oder eine CD rendere, kommt bei CD folgender Fehler: "Name oder Objekt nicht gefunden" und bei DVD "Ungültige Gleitkommaoperation".
Und jetzt habe ich mein Projekt mal auf einem Rechner kompiliert, wo es nicht geht.

Der Fehler kommt irgendwo in diesem Abschnitt, ich habe es mit BreakPoint versucht, finde aber nicht die genaue Stelle.
Delphi-Quellcode:
procedure TForm5.Button1Click(Sender: TObject);
var i: Integer;
    Status : TAMDVDRenderStatus;
    F: Integer;
    sr: TSearchRec;
    FileName: String;
begin
{DVD}
  If FileExists(ExtractFileDrive(DriveComboBox1.Items.Strings[DriveComboBox1.ItemIndex]) + '/' + 'VIDEO_TS' + '/' + 'VIDEO_TS.IFO') then
  begin
    Form1.ListBox1.Enabled := False;
    Form1.OpenDialog1.Filter := 'VIDEO_TS.IFO|VIDEO_TS.IFO';
    Form1.ListBox1.Items.Add(ExtractFileDrive(DriveComboBox1.Items.Strings[DriveComboBox1.ItemIndex]) + '/' + 'VIDEO_TS' + '/' + 'VIDEO_TS.IFO');
    If not Form1.FilterGraph1.Active = True then Form1.FilterGraph1.Active := True;
    Form1.FilterGraph1.Mode := gmDVD;
    Form1.VideoWindow1.Mode := vmNormal;
    Form1.FilterGraph1.ClearGraph;
    Form1.FilterGraph1.RenderDVD(Status, Form1.ListBox1.Items.Strings[0]);
    Form1.FilterGraph1.Volume := Form1.TrackBar1.Position * 1000;
    Form1.FilterGraph1.Play;
    Form5.Close;
  end;
{CD}
  If not FileExists(ExtractFileDrive(DriveComboBox1.Items.Strings[DriveComboBox1.ItemIndex]) + '/' + 'VIDEO_TS' + '/' + 'VIDEO_TS.IFO') then
  begin
     Form1.ListBox1.Enabled := True;
     Screen.Cursor := crHourGlass;
     F := FindFirst(ExtractFileDrive(DriveComboBox1.Items.Strings[DriveComboBox1.ItemIndex]) + '/' + '*.*', (faAnyFile and not faDirectory), sr);
     while F = 0 do
     begin
       if (sr.Attr and faDirectory) = 0 then
       begin
        FileName := sr.Name;
        FileName := StringReplace(FileName, ExtractFileExt(FileName), '', []);
        Form1.ListBox1.Items.Add(FileName);
       end;
       F := FindNext(sr);
     end;
     FindClose(sr);
     Screen.Cursor := crDefault;

    Form1.OpenDialog1.FileName := FileName;
    for I := 0 to Form1.OpenDialog1.Files.Count - 1 do
    begin
      Form1.ListBox1.Items.Add(Form1.OpenDialog1.Files[i]);
    end;
    If not Form1.FilterGraph1.Active = True then Form1.FilterGraph1.Active := True;
    Form1.FilterGraph1.Mode := gmNormal;
    Form1.VideoWindow1.Mode := vmVMR;
    Form1.FilterGraph1.ClearGraph;
    Form1.FilterGraph1.RenderFile(Form1.OpenDialog1.FileName);
    Form1.FilterGraph1.Volume := Form1.TrackBar1.Position * 1000;
    Form1.FilterGraph1.Play;
    Form5.Close;
  end;
end;
Und wenn der Fehler kommt, steht der Compiler an folgender Stelle in der DSUtil.pas
Delphi-Quellcode:
function CheckDSError(HR: HRESULT): HRESULT;
  var Excep: EDirectShowException;
  begin
    Result := HR;
    if Failed(HR) then
    begin
      Excep := EDirectShowException.Create(format(GetErrorString(HR)+' ($%x).',[HR]));
      Excep.ErrorCode := HR;
      raise Excep;
    end;
  end;
Ich hoffe, ihr könnt mir helfen!

Paul
  Mit Zitat antworten Zitat