Huhu,
Momentanes Problem ist.
Ich will in meinem Programm Videos abspielen was auch nun endlich klappt:D
Nur eine sache ist ein Problem
Sollte es zu eine bestimmten Situation kommen kann es passieren das hier 15 Videos gleichzeitig abgespielt werden.
Die Videos sind recht klein alle ca 50-70kb groß jedoch benötigt es dann doch eine Kurze Ladezeit die ich nicht brauche.
Nun die Frage gibt es eine Möglichkeit die Videos in den Speicher zu laden
bei Programmstart und dann bei bedarf abzuspielen ?
Dazu kommt das Problem:
jedes Video soll auch mehrmals auf dem Bildschirm wiedergeben werden können.
mein momentaner Code zum Abspielen für Videos(MCI) ist dieser hier aber wie gesagt zu langsam bei z.b 15 Videos.. Hier kommt dann jedes Video mit ca halben sekunde Verzögerung.
Grundlage für das ganze ist die 'MCI class.inc'.
Ich hoffe der Code ist ausreichend dokumentiert.
Proc Playvideo
Dim MCI#, MCI
With MCI#
MCI_anz%=0
WhileLoop 15
If Position_gewinn%[&loop] = 1 'Position abspielen ?
Inc MCI_anz%
videoname$=Getvideoname(&loop) 'Videoname holen
creatstatic(&loop) 'Static für die Wiedergabe erstellen.
if .Load(MCI_anz%,videoname$,&loop) <> 0
'Fehler
EndIf
EndIf
EndWhile
WhileLoop MCI_anz% 'Anzahl der Geladenen Videos abspielen
.Play(&loop)
EndWhile
While .GetStatus(1) = %MCI_Playing 'Warten auf Ende
Sleep 100
EndWhile
WhileLoop 15
If Position_gewinn%[&loop] = 1
destroystatic(&loop) 'Static Zerstörten
EndIf
EndWhile
WhileLoop MCI_anz%
.Free(&loop) 'Video freilassen
EndWhile
EndWith
Dispose MCI#
EndProc
Alles anzeigen
Eventuell hat ja wer Optimierungsvorschläge?
z.b Die Statics kann ich problemlos bei Programmstart setzten.
Das gleiche habe ich nun auch mit den MCI Handle probiert.
Dim Buffer#, 260
WhileLoop 12
Inc Videoid% 'Videoid belegen
videoname$ = Getvideoname(&loop)
String Buffer#, 0 = "OPEN \q" + videoname$ + "\q Type MPEGVIDEO ALIAS MCI_"+Str$(Videoid%)
i% = mciSendString(Buffer#,0, 0, 0)
EndWhile
Dispose Buffer#
das scheint auch zu klappen.
Nur wie dann weiter ? Sitze leider schon eine ganze Weile an dem Problem nun.
Und sorry für den Vielen Text
und ich hoffe ihr versteht mein Problem.