Autor | Thema: Sleep | | Datum:10.08.02 22:51 
(mariodonick@yahoo.de) | |
Hallo!
In Profan 5.0 ist der Sleep-Befehl noch nicht integriert, also hab ich mir die Funktion aus der Windows-API genommen. Benutzt der Sleep-Befehl der späteren Versionen auch einfach die API?
Und, viel wichtiger: Kann man sich darauf verlassen, dass 1000 Millisekunden auf JEDEM Rechner 1000 Millisekunden sind? Das also die durch Sleep erzeugte Pause auf WIRKLICH JEDEM Rechner gleich lang ist? Dass eine Sleep-Sekunde auf einem P II genauso lang ist wie auf einem P4?
Oder muss man da noch mit GetTickCount usw. rumtricksen, damit die Zeit nicht mehr relativ ist *g* ?
Mario
|
| | Datum:10.08.02 22:56 
(mariodonick@yahoo.de) | |
Hatte noch was vergessen:
Ich hab nämlich ein interessantes Phänomen beobachtet. Ich hab eine Slideshow von Bildern programmiert, wo auch Text angezeigt wird, mit Musik unterlegt. Die Anzeige läuft schön im Rhythmus der Musik mit, gesteuert durch Sleep-Aufrufe. Der Text wird durch eine Prozedur eingeblendet, die in einer Schleife einfach den String in allen 255 Graustufen an die gleiche Stelle schreibt - auch hier wird die Geschwindigkeit des Einblendens mit Sleep gesteuert.
Normalerweise klappt das sehr gut.
Dann ist mir aus Profan-unabhängigen Gründen der Explorer abgestürzt, ich hab Windows aber nicht neu gestartet weil alles soweit lief.
Als ich meine Slideshow danach aber nochmal gestartet habe, war die Geschwindigkeit viel zu schnell!
Die Pausen zwischen den Bildern waren richtig, hier hat Sleep also funktioniert. Doch die Pausen zwischen den einzelnen Graustufen der Texteinblendung waren praktisch nichtexistent. Woran kann das liegen, wenn beides mal das unveränderte Compilat war?
Wird bei einem Explorer-Absturz u.U. ein Windowsinternes Programm beendet, dass dafür sorgt, dass die Zeit vernünftig abläuft?
Mario
|
| | Datum:10.08.02 22:57 
(martin_pohl@msn.com) | |
Hallo, Mario!
Auf jedem Rechner wird die Dauer gleich lang sein, da sich die API von Windows im Verlauf der Jahre nur leicht verändert hat. Es sind nur neue Befehle hinzugekommen, jedoch wurden keine stark verändert.
|
| | Datum:10.08.02 23:32 
(joerse@gmx.de) | |
> da sich die API von Windows im Verlauf der Jahre nur leicht verändert hat
Eben, und schon zu 3x Zeiten haben sich Musiker über das schlechte Timing
von Windows aufgeregt.
Bei Midi ist das mittlerweile etwas besser geworden. Wenn man wirklichauf die millisekunde genau
programmieren will, funktioniert wahrscheinlich alles nicht perfekt.
Am besten Du läßt bestimmte Ereignisse Startpunkte für andere Ereignisse setzen.
Sonst läuft es wohl bei größeren Abständen auseinander.
Gruß
Jörg
|
| | Datum:10.08.02 23:46 
(mariodonick@yahoo.de) | |
Danke für die Antworten.
@Jörg:
Wie meinst du das mit den Ereignissen?
In der Profan-Hilfe ist im Beispiel zu SetTimer und KillTimer eine Prozedur enthalten, der auch Millisekunden übergeben werden und die dann mit den Timer-Befehlen eine Pause macht. Funktioniert das besser als Sleep?
Ich mache die Slideshow für das Intro einer CD-ROM und es nervt mich ziemlich, dass es immer noch keine Möglichkeit zu geben scheint, vernünftig die Zeit zu messen. Ich hatte meine Slideshow vorhin noch einmal laufen, da ging es wieder zu schnell. Gleichzeitig lief ein Download, und man hat an manchen Stellen ist die Geschwindigkeit total in die Knie gegangen, total unregelmäßig. Ich bilde mir ein, dass solche Funktionen immer und unter allen Umständen laufen müssten, aber Microsoft denkt wohl nicht so..... naja....
Ich probier mal die Timer-Prozedur aus, und wenn das auch nicht geht, erstell ich ne AVI-Datei und zeig die in meinem Fenster an.
Gibt es dafür Befehle? Wie man ein Video direkt im Hauptfenster ausgibt?
Mario
|
| | Datum: 11.08.02 01:07 
(joerse@gmx.de) | |
Hallo Mario,
Mit den Ereignissen meine ich, dass Du vielleicht die Steuerung quasi umkehrst.
Nicht die Bilder werden an bestimmten Musikstellen geladen, sondern zu bestimmten Bildern werden Musikstücke geladen.
Obwohl das wahrscheinlich häßlich Aussetzer gibt.
Vielleicht ist es möglich die aktuelle Position im Stück zu ermitteln, so dass Du
zeitunabhängig Dein Bild passend zur Musik laden kannst.
Zu Avi gibt es ansonsten in den Forums- und Mailinglistenarchiven
eine Menge Beispiele. Wenn ich was finde melde ich mich nochmal.
Gruß
Jörg
|
|
|