![]() |
Fehler beim Abspielen von Video
Hallo,
ich möchte gern eine avi-file in ein delphiprogramm einbinden. das ganze ist so angedacht, dass das video abgespielt wird, sobald die form geöffnet wird (mit formcreate). Als display dient ein panel. mein quelltext sieht so aus:
Delphi-Quellcode:
wenn ich das programm starten möchte, dann wird angezeigt, dass kein gerätetyp aus der angegebenen dateinamenerweiterung ermittelt werden kann (EMCIDiviceError).procedure TForm1.FormCreate(Sender: TObject); var Mediaplayer1 : TMediaPlayer; begin Mediaplayer1.DeviceType:=dtAutoSelect; Mediaplayer1.Filename:='C:\Users\KeyBe\Desktop\1.avi'; Mediaplayer1.Display:=panel1; Mediaplayer1.Open; Mediaplayer1.Play; end; liegt das am fehlen eines codecs? der mediaplayer selbst spielt das video ab. oder habe ich vllt. im objektinspektor falsche einstellungen? |
Re: Fehler beim Abspielen von Video
Möglich wäre das schon mit dem fehlenden Codec. Was mich aber mehr verwundert ist die Tatsache, dass Du keine AV bekommst, oder hast Du die Zeile, in der Du den Mediaplayer erzeugst, unterschlagen?
|
Re: Fehler beim Abspielen von Video
Kann es sein, das dein Mediaplayer1 in FormCreate noch nicht erstellt ist?
Ich nehme mal an, dass der Mediaplayer1 auf der Form liegt, oder?
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject); var Mediaplayer1 : TMediaPlayer; // <-- weglassen ! begin Mediaplayer1.DeviceType:=dtAutoSelect; Mediaplayer1.Filename:='C:\Users\KeyBe\Desktop\1.avi'; Mediaplayer1.Display:=panel1; Mediaplayer1.Open; Mediaplayer1.Play; end; |
Re: Fehler beim Abspielen von Video
ja, der liegt drauf...muss da was spezielles beachtet werden?
der mediaplyer selbst spielts ja ab, aber kann es denn sein, dass es nicht funktioniert, weil vista den productkey (betriebssystem ist original, key wird allerdings nicht angenommen) nich akzeptiert? andere programme sind daher ja auch nur eingeschränkt nutzbar |
Re: Fehler beim Abspielen von Video
@deddyH
meinst du das?
Delphi-Quellcode:
ich stehe ich auf dem schlauch
Mediaplayer1:=TMediaPlayer.Create(self);
ich hab das jetzt mal so:
Delphi-Quellcode:
weiter hab ich nichts im quelltext
procedure TForm1.FormCreate(Sender: TObject);
begin Mediaplayer1:=TMediaPlayer.Create(self); mediaplayer1.parent:=self; mediaplayer1.filename:='C:\Users\KeyBe\Desktop\1.avi'; mediaplayer1.open; mediaplayer1.display:=Panel1; mediaplayer1.play; end; funktioniert leider nicht trotzdem vielen dank! |
Re: Fehler beim Abspielen von Video
Genau die Zeile hatte ich gemeint. Möglicherweise hast Du da tatsächlich ein Codec-Problem. Kannst Du das Video mal zippen und anhängen, dann könnte man mal schauen, ob es bei anderen funktioniert.
|
Re: Fehler beim Abspielen von Video
naja, das video ist n paar 100 mb groß, zumindest das testvideo...das was am ende rein soll ist noch nicht fertig, das bekomme ich erst noch (ein intro für eine zusammenstellung von spielen)
wo bekomme ich einen codec her, mit dem das dann funktionieren sollte? ich hab ja eigentlich auch einen avi-codec speziell für vista |
Re: Fehler beim Abspielen von Video
Ich würde dir nicht Raten die TMediaPlayer-Komponente zum Abspielen von Videos zu verwenden - die basiert auf einer uralt Schnittstelle, die noch als Überrest von Windows 3.11 existiert.
Normalerweise werden Videos unter Windows mit DirectShow (für Delphi gibt es da DSPack) abgespielt - wenn es etwas Quelloffenes sein darf kann ich dir auch meine eigene " ![]() PS: Bei DirectShow musst du auch noch Codecs installieren, bei dem Link von mir sind alle Codecs "im Programm drin". |
Re: Fehler beim Abspielen von Video
ok, ich bins mal wieder^^
ich hab jetzt mal wieder langeweile gehabt und versucht das mit der avi-file in den griff zu kriegen, ich habs gott sei dank geschafft die file abgespiel zu bekommen. nur leider läuft die file zu schnell, ton kommt demzufolge natürlich auch keiner. ich habe daraufhin versucht die größe des panels der größe der file anzupassen, das klappt soweit, nur ändert sich an der geschwindigkeit des videos nichts. das wäre der code dazu:
Delphi-Quellcode:
vllt bin ich auch einfach nur blind
procedure groessedisplay(mediaplayer: Tmediaplayer);
begin with mediaplayer do begin Display.Width:= DisplayRect.Right - DisplayRect.Left; Display.Height:= DisplayRect.Bottom - DisplayRect.Top; end; end; procedure TForm1.SpeedButton2Click(Sender: TObject); var src : string; begin opendialog1.Execute; edit1.text:=OpenDialog1.Filename; src:=edit1.text; with MediaPlayer1 do begin Filename:=src; open; Display:=Panel1; groessedisplay(mediaplayer1); end; end; (autoopen geht nicht auf true zu setzen, hat damit wahrscheinlich eher weniger zu tun, wollte es aber anmerken) vielen dank im voraus! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:14 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 by Thomas Breitkreuz