![]() |
Videos vorladen
Moin,
ich hab jetzt schon n Weilchen gesucht, aber bisher noch nichts brauchbares gefunden, dass mir weiterhelfen könnte... folgendes Prob: Ich hab einige Videos (zusammen ca 300MB) in einer RESsource-Datei gespeichert und will diese nun zu bestimmten Zeitpunkten während des Programmablaufs abspielen. Das ganze funzt an sich auch genau so wie es soll (mit TAnimate) aber die Videos (selbst erstellte Animationen) stocken beim ersten abspielen extrem ... DiaShow-like. Ab dem 2. Abspielen laufen die Videos dann flüssig. meine Frage: Gibt es eine Möglichkeit Videos beim Programmstart in den RAM zu laden? (Ich dachte mir das so in der Form einer ProcessBar oder so ähnlich.) Hoffe jemand hat eine Idee |
Re: Video vorladen
Du könntest sie in einen MemoryStream laden, von dem du sie dann anzeigst.
|
Re: Videos vorladen
Kannst mir kurz schreiben wie das funzt?
Hab bisher noch nicht mit MemoryStream gearbeitet ... |
Re: Videos vorladen
.. da habe ich mal eine Verständnisfrage:
Liegen die Videodaten denn nicht schon im RAM wenn sie als Resource eingebunden wurden? Grüße Klaus |
Re: Videos vorladen
Du streamst ja jetzt direkt aus der Ressource. Du musst nun halt den umweg über den Memorystream nehmen
|
Re: Videos vorladen
Ich denke nicht, dass alles direkt schon im RAM liegt, was als ressource verwendet wird...
da würde doch anfangs etwas länger geladen werden oder? (bei 300 MB) Na gut, also MemoryStream, kann mir dass jemand kurz an nem Beispiel zeigen? |
Re: Videos vorladen
Delphi-Quellcode:
var
ms: TMemoryStream; ... ms := TMemoryStream.Create; ms.LoadFromStream( ressource); ... |
Re: Videos vorladen
Gut,
dann werd ich das mal mit nem MemoryStream versuchen... Aber wie greife ich dann auf den Stream zu? aus der ressource konnte man die Videos per
Delphi-Quellcode:
laden (darauf zugreifen)
Animate1.ResName := 'video1'
Wie bekomme ich ein Video dann aus dem MemoryStream? |
Re: Videos vorladen
Mit TAnimate, wird es wohl so nicht gehen
|
Re: Videos vorladen
ok, das ist ja an sich kein problem.
womit dann...dem mediaplayer? |
Re: Videos vorladen
Der Mediaplayer (in Delphi) unterstützt kein Abspielen von Resourcendaten.
Ich frag mich sowieso warum man ein Video was eine Grösse von mereren 100 MB hat in eine Res. packt. :gruebel: |
Re: Videos vorladen
Es sind genau genommen 7 Videos (zusammen ca. 300 MB)
Um diese nicht immer extra mit der EXE-Datei mitliefern zu müssen hab ich sie in einer REs Datei zusammengefügt und sie so in die EXE mit integriert. (das war so der Hauptgedanke) Hat ja auch funktioniert, nur dass das erste Abspielen so stark stockt muss man doch verhindern können... |
Re: Videos vorladen
Hast du mal versucht die resource vorher einfach mal so einzulesen?
wie ließt du denn jetzt ein, bzw. wie spielst du es ab. |
Re: Videos vorladen
Bisher funktioniert das so:
Delphi-Quellcode:
...
implementation {$R clips.RES} ... Animate1.ResName := 'clip1'; Animate1.Play(1,0,1); ... |
Re: Videos vorladen
Hat denn wirklich keiner ne Idee?
...@himitsu wei meinst du des, einfach mal so einlesen? |
Re: Videos vorladen
nja, derzeit werden die Daten ja von dem "Player" stück für Stück in den RAM geladen und abgespielt.
und da es beim 2zweiten Abspielen dann schneller geht, ist danach anscheinend irgenwo etwas in 'ner Cache (oder so) gelandet. Wenn du dir jetzt selber 'nen bissl Speicher reservierst und es auch stück für Stück vorher mal in diesen Speicher kopierst (ich denk mal du möchtest den Film nicht gleich komplett in den RAM laden), landet es ja vieleicht auch in dieser Cache und beim ersten Abspielen isses dann schon da drin und kann gleich "schnell" abgespielt werden. (so als Überlegung) |
Re: Videos vorladen
Meinst du das jetzt so in der Richtung von im Hintergrund schonmal abspielen ?
|
Re: Videos vorladen
Zitat:
|
Re: Videos vorladen
Ok, ich wollte nur kurz bescheid geben, dass es so funktioniert.
Ich hab eine extra form gestaltet, die beim Programmstart vor der Hauptform angezeigt wird, auf der ein Ladebalken angezeigt wird. Die Videos werden einfach nacheinander abgspielt, aber von dem TAnimate muss mindestens 1 Pixel zu sehen sein, sonst funktioniert das nicht. Danach wird diese form geschlossen und die Hauptform geöffnet und die Videos stocken nicht mehr. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:45 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