Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Problem mit 2 FlashVideos auf einer Seite (https://www.delphipraxis.net/86368-problem-mit-2-flashvideos-auf-einer-seite.html)

litotes 13. Feb 2007 09:59


Problem mit 2 FlashVideos auf einer Seite
 
Hallo,

ich programmiere gerade eine Oberfläche, die Flashmovies beinhaltet.
Problem: Ich will mit einem Button TSHockwave1 aufrufen (Video1)
und mit einem zweiten Button eben das zweite Video (TSHockwave2).

Das Abspielen klappt auch mit:
Delphi-Quellcode:
procedure TF_Drucken_1_Vorbedingungen.Button1Click(Sender: TObject);
begin
  Shockwaveflash1.movie := ExtractFilePath(Application.ExeName) + '/videos/' + videoname;
  ShockwaveFlash1.play;
end;
wobei "videoname" übergeben wird von meinem ersten Button:
Delphi-Quellcode:
procedure TF_Drucken_1_Vorbedingungen.R_Memo3x1sp21Click(Sender: TObject);
begin
   videoname := '2.swf';
end;
Aber, obwohl der Name des zweiten Videos übergeben wird, wird es nie abgespielt!
Leider spielt auf Drücken des "Play"-Buttons immer das erste Video ab, bzw. es spielt weiter.

Ich kriegs einfach nicht hin :wall: !

Obwohl ich das ganze innerhalb von Frames mache, hat das wohl nichts damit zu tun, oder?
(Button1 und 2 sind ein Frame, Video und play button ein anderes)

Wie krieg ich den Shockwaveplayer dazu, das zweite Video einzulesen??

Für Hilfe wäre ich sehr dankbar!

litotes

dr. love 13. Feb 2007 10:39

Re: Problem mit 2 FlashVideos auf einer Seite
 
ähm, ich kenn die komponente niche, aber ich glaub ich weiß worans liegt, füg beim Button (Video 2 laden) folgendes ein:

Delphi-Quellcode:
procedure TF_Drucken_1_Vorbedingungen.R_Memo3x1sp21Click(Sender: TObject);
begin

  videoname := '2.swf';
  Shockwaveflash1.movie := ExtractFilePath(Application.ExeName) + '/videos/' + videoname;

end;
da der player sonst noch den alten file abspielen will. durch die 2te zeile wird ihm erst gesagt, dass er den neuen file (2.swf) laden soll

dr. love 13. Feb 2007 10:42

Re: Problem mit 2 FlashVideos auf einer Seite
 
sollte das nich funktionieren, mussu den file (das erste video) erst entfernen, dann das zweite laden (wie beim mediaplayer mit stop/eject danach open/play)

TonyR 13. Feb 2007 10:44

Re: Problem mit 2 FlashVideos auf einer Seite
 
und was ist jetzt bei dir anders dr ?

Ich kenn die Kompo auch nich, aber vielleicht muss man sie erst anhalten (weis nicht, ob es sowas wie player.stop gibt), dann player.movie:=nil (als zwischenschritt um die "wiedergabeliste" zu leeren) und zuletzt die neue Datei laden und abspielen.

edit: jetzt ist er mir noch zuvorgekommen... :x

dr. love 13. Feb 2007 10:47

Re: Problem mit 2 FlashVideos auf einer Seite
 
hmm... tut mit leid tony! aber immehin scheints die lösung zu sein - denn wenn du das gleiche denkst...

litotes 13. Feb 2007 11:27

Re: Problem mit 2 FlashVideos auf einer Seite
 
Danke für die schnelle Hilfe!

Die Lösung war tatsächlich, bei beiden Buttons einzufügen:
Delphi-Quellcode:
  Shockwaveflash1.movie := ExtractFilePath(Application.ExeName) + '/videos/' + videoname;

Obwohl ich das nicht verstehe, weil ja die Variable "videoname" eigentlich bei Buttonklick
neu übergeben wird... :gruebel:

Naja, danke jedenfalls!

Litotes

dr. love 13. Feb 2007 11:31

Re: Problem mit 2 FlashVideos auf einer Seite
 
Tja, manche Sachen sin eben unerklärlich. Vielleicht stimmt da irgenwas an der Variablendeklaration nich, kann dir aber auch egal sein, hauptsaches läuft.^^

Mich würde mal interessieren, was das für ne Komponente is. Wo hast du die denn her?

litotes 13. Feb 2007 12:12

Re: Problem mit 2 FlashVideos auf einer Seite
 
Hallo Dr. Love,

die Komponente spielt Flash-Movies ab, mehr Infos unter Flash und Delphi.

Installieren ist einfach (in Delphi Menüs):
1. Komponente
2. ActiveX importieren
3. ShockwaveFlash wählen und installieren drücken
4. Du findest sie unter dem Reiter ActiveX

Viel Spass damit,

litotes

dr. love 13. Feb 2007 13:20

Re: Problem mit 2 FlashVideos auf einer Seite
 
guter tip, danke!

mit meinem turbo explorer werd ich da zwar wieder ein bissl arbeit haben, aber gut zu wissen, dasses sowas gibt.

litotes 15. Feb 2007 08:42

Re: Problem mit 2 FlashVideos auf einer Seite
 
Hallo,

jetzt muss ich noch einmal auf mein Problem zurückkommen, weil die vorgeschlagene Lösung
leider doch nicht geklappt hat.

Problem ist folgendes:
Button1 lädt Videoname 1 als Variable, wobei Video1 die Komponente TShockwaveflash ist:
Delphi-Quellcode:
procedure TF_M3x.sp21Click(Sender: TObject);
begin
  videoname := 'v1.swf';
  video1.movie := ExtractFilePath(Application.ExeName) + 'videos\' + videoname;
  video1.Play;
end;
Button 2 macht das gleiche mit Videoname zwei:
Delphi-Quellcode:
procedure TF_M3x.sp23Click(Sender: TObject);
begin

  videoname := 'v2.swf';
  video1.movie := ExtractFilePath(Application.ExeName) + 'videos\' + videoname;
  video1.Play;
end;
Und dann gibts noch einen zusätzlichen Play-Button, wie beim CD-Spieler,
der das Video noch einmal extra startet (ist nötig bei mir).

Delphi-Quellcode:
procedure TF_M3x.playClick(Sender: TObject);
begin
 video1.play;
end;
Und nach 2 Tagen rumprobieren bin ich fast am Verzweifeln:
Wieso spielt er auf Druck von Button2 nicht Video2 ab,
sondern spielt immer nur Video1 weiter ab??

Bin dankbar für jeden Tipp!

Litotes

TonyR 15. Feb 2007 09:17

Re: Problem mit 2 FlashVideos auf einer Seite
 
Delphi-Quellcode:
procedure TF_M3x.sp21Click(Sender: TObject);
begin
  videoname := 'v1.swf';
  video1.stop; video1.movie:=nil;
  video1.movie := ExtractFilePath(ParamStr(0)) + '\videos\v1.swf';
  video1.Play;
end;

procedure TF_M3x.sp23Click(Sender: TObject);
begin
  videoname := 'v2.swf';
  video1.stop; video1.movie:=nil;
  video1.movie := ExtractFilePath(ParamStr(0)) + '\videos\v2.swf';
  video1.Play;
end;
Probier doch mal sowas hier in der Art... ist zwar eigentlich dasselbe, aber naja... (machs einfach mal nur zur Probe).

PS: Mir kommt grad wegen diesem hier was in den Sinn
Zitat:

Wieso spielt er auf Druck von Button2 nicht Video2 ab,
sondern spielt immer nur Video1 weiter ab??
Am Ende ist es nämlich bloß ein ganz blöder Fehler, z.B. dass in beiden Buttons dieselbe Prozedur bei einem Klick aufgerufen wird (das würde ich auch mal nachprüfen [im Objektinspektor]).

litotes 15. Feb 2007 09:33

Re: Problem mit 2 FlashVideos auf einer Seite
 
Hallo,

@Tony

das mit
Zitat:

video1.movie:=nil;
geht leider nicht, Fehlermeldung = Inkompatible Typen Widestring und Pointer. Da weiß ich leider nicht weiter.

Zu dem anderen Tipp, nämlich:
Zitat:

Am Ende ist es nämlich bloß ein ganz blöder Fehler, z.B. dass in beiden Buttons dieselbe Prozedur bei einem Klick aufgerufen wird (das würde ich auch mal nachprüfen [im Objektinspektor]).
bin ich etwas verwirrt, auch wenn ich ebenfalls argwöhne, dass es "ein ganz blöder Fehler" ist.
Diesselbe Prozedur? Bei beiden Buttons ist natürlich die Aktion mit OnClick ausgelöst, oder was meinst du sonst?

litotes

TonyR 15. Feb 2007 09:38

Re: Problem mit 2 FlashVideos auf einer Seite
 
Delphi-Quellcode:
video1.movie:=nil; // klappt nicht?... das is doof
{dann probiers hiermit} video1.movie:=''; // oder vielleicht gibt es die Funktion video1.eject ???
Zitat:

Am Ende ist es nämlich bloß ein ganz blöder Fehler, z.B. dass in beiden Buttons dieselbe Prozedur bei einem Klick aufgerufen wird (das würde ich auch mal nachprüfen [im Objektinspektor]).
Wenn man z.B. einen Button kreiert und dann das onklick-Ereignis ausfüllt (also aktionen reinschreibt)
und danach den Button z.B. mit Str+C und Str+V auf dem Form kopiert, dann hätten beide dasselbe OnKlick-Ereignis (das kann man ja im OI einsehen)...
Ich glaub aber nicht dass du das so gemacht hast und deshalb kann man den Fehler eigentlich ausschließen (war halt bloß so ein Gedanke, weil an irgendwas muss es ja liegen????) :wink:

litotes 15. Feb 2007 09:48

Re: Problem mit 2 FlashVideos auf einer Seite
 
Hallo,

also habe beides ausprobiert, sowohl zwei neue buttons bringens nicht,
und auf video1.movie:=''; war ich auch schon verfallen.

Das Abspielen des zweiten Videos, wenn ich zuerst auf Button2 drücke
geht übrigens einwandfrei... aber dann spielt wieder nur Video2...

Seufz,

aber danke für die schnelle Hilfe bisher,

Litotes

TonyR 15. Feb 2007 15:19

Re: Problem mit 2 FlashVideos auf einer Seite
 
Und eine Weitere Idee... die ist aber ... naja, ich weis nicht wie ich sie beschreiben soll :(

Nimm doch einfach 2 Flash-Komponenten!!!
Der einen ordnest du das eine Movie zu und der Anderen eben das Andere :wink:

Dann müsste es im Prinzip funktionieren (nach deinen bisherigen Aussagen nach).

Und du legst sie übereinander und versteckst dann immer das, was grad nicht abgespielt wird!

Geile Idee, oda?


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:26 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