AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi DSPack::spielt einmal->danach nicht mehr
Thema durchsuchen
Ansicht
Themen-Optionen

DSPack::spielt einmal->danach nicht mehr

Ein Thema von Nils_13 · begonnen am 25. Sep 2006 · letzter Beitrag vom 29. Aug 2007
Antwort Antwort
EWeiss
(Gast)

n/a Beiträge
 
#1

Re: DSPack::spielt einmal->danach nicht mehr

  Alt 25. Sep 2006, 08:58
Zitat von Nils_13:
1. Das MUSS in OnDestroy trotzdem stehen, da ich sonst eine AV beim Beenden des Programms bekomme.
2. Wo soll dann der Freigabecode in Doppelklick hin ?
Wenn ich noch
Delphi-Quellcode:
with frmVideo do
begin
  if Filtergraph.Active then
  begin
    FilterGraph.ClearGraph;
    FilterGraph.Free;
    VideoWindow.Free;
  end;
end;
vor den Abspielcode setze, wird eine AV bei der markierten Zeile hervorgerufen:
Delphi-Quellcode:
frmVideo.Show;
with frmVideo do
begin
  if not FilterGraph.Active then
  begin
   --> if not FilterGraph.Active then <--
      FilterGraph.Active := true;
    FilterGraph.Stop;
    FilterGraph.ClearGraph;
    FilterGraph.RenderFile(fFiles[playindex].pfad);
    FilterGraph.play;
    pause := True;
  end;
end;
Nee hast mich falsch verstanden!
Ein AV bekommst du deshalb weil du den FilterGraph neu initialisierst und er noch nicht freigegeben ist
Bei jeden Film wird eine neue Instanz von FilterGraph gebildet was bedeutet
wird diese nicht vorher beendet bekommst du einen AV.

Du kannst if not FilterGraph.Active nicht aufrufen wenn du einen doppelklick auf die Liste machst
FilterGraph dürfte dann schon nicht mehr existieren.
Mache doch eine Public oder Globale Variable welche dir ermöglicht
den status unabhängig von FilterGraph zu überprüfen.

Beispiel:
ISVIdeoPlaying : Boolean;
Das einfügen nachdem ein Video spielt logischer weise auf True setzen
Wenn du nun auf die Liste klickst dieses Variable abfragen
Wenn True dann FilterGraph beenden, neu initialisieren und fertig.

PS: Am besten nicht im Doppelklick event sondern im Mouseup Event
Die Liste darf nicht mehr den Focus habe wenn du FilterGraph neu initialisierst.
Und noch was FilterGraph.Free; muss immer ausgeführt werden bevor du ein
neues Video abspielst.
VideoWindow.Free; nicht unbedingt .. wenn du es mit einer PIcBox(Canvas) verbunden hast.
Aber auf jedenfall wenn du dein Projekt beendest.

Gruß
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz