Autor Beitrag
Sy-
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 177



BeitragVerfasst: Di 04.07.06 11:03 
Hi all,

versuche grade eine Zeitlupe einzubauen und hänge grade daran, dass das Bild viel länger zum aufbauen braucht, wenn man selber via .position:=x arbeitet.
Kurz für die Übersicht:
Habe ein Timer, welcher selber im Prinzip die Steuerung führt und dem Player die Position sagt.
So gesehen ist die Framerate bei etwa 1sek weil der absolut langsam ein Bild aufbaut, wo hingegen bei einem normalen Play eine viel größere Framerate besteht.

-> Kennt jemand eine Methode mit der es auch fließend nachgeladen wird, sprich ohne Umweg die Position bestimmt wird?

Gruß
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 480

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Di 04.07.06 11:38 
Wie ist denn dein Timer.Interval? Und wie zeigst du das Bild an? Zeig mal etwas Code, den man dann ggf. umbauen kann ;-)

_________________
We are, we were and will not be.
Sy- Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 177



BeitragVerfasst: Di 04.07.06 11:49 
Irgendwie habe ich geahnt dass die frage mit dem interval kommt ;)
natürlich habe ich es umgestellt, ist immo 5ms, habs auch mit 1ms versucht ist aber völlig egal, weil der sowieso nicht nachkommt mit der darstellung.

So, etwas code:
ausblenden Delphi-Quelltext
1:
control.position:=control.position+speed.position;					
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 480

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Di 04.07.06 12:03 
Sowas hab ich mir schon gedacht ;-)

Überleg doch mal: Ein normales Video hat eine Framerate von vielleicht 24 oder 25 Bilder pro Sekunde. Mehr ist da einfach nicht. D.h. wenn du die Position 200 mal (oder sogar 1000 mal) pro Sekunde neu setzen willst, ist das komplett unsinnig. Ein Interval von 40ms wäre also vollkommen ausreichend.

Generell halte ich aber das Vorgehen, während des Abspielens ständig die Position neu zu setzen für sub-optimal. Stell dir vor, du willst dein Auto dadurch langsamer machen, dass du beim gasgeben ständig jemanden neben dir laufen hast, der dein Auto ständig ein paar Meter zurückträgt...ist doch Quatsch :lol: Besser wäre es, direkt langsamer zu fahren...

Schau mal, ob du andere Wiedergabe-Komponenten findest, die Zeitlupe als Funktion mitliefern. Such mal nach DSPack, vielleicht geht das damit :nixweiss:

_________________
We are, we were and will not be.
Sy- Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 177



BeitragVerfasst: Di 04.07.06 12:19 
anfangs war es ja 50ms, bin aber weiter runter gegangen damit ich auf jeden fall ein unterschied sehe, falls es klappen sollte ^^

Das ist schade, ich schau mal weiter...
alias5000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: Di 04.07.06 13:09 
Man soolte nochmal auf die Langsamkeit von TTimer hinweisen, dessen tatsächliches Maximum, je nach Windows-Version, irgendo beo 25-45 ms liegt :!:

_________________
Programmers never die, they just GOSUB without RETURN
Sy- Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 177



BeitragVerfasst: Mi 05.07.06 13:01 
DS Pack ist nur bis Delphi 7 vertreten, ich nutze D2006 :(

Kennt da sonst noch jemand ein Player?
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Mi 05.07.06 13:20 
Lad dir einfach die Siebener, das ganze sollte aufwärtskompatibel sein (hat bei meiner 2005 PE geklappt)

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
Sy- Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 177



BeitragVerfasst: Mi 05.07.06 13:51 
Bei mir kommt:

[Pascal Fehler] DirectDraw.pas(359): E2154 Typ 'IDirectDrawSurface' benötigt Finalization - nicht im varianten Record erlaubt
Sy- Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 177



BeitragVerfasst: Mi 05.07.06 15:44 
Oha! das war eine lange Geburt.
Haufen Fehler und kompatibilitätsprobleme...

Habs mal umgeschrieben und anders angeordnet,
wird jedoch höchstverscheinlich auf sehr alten Delphi-versionen nicht laufen.

Ich habe jedoch die Demos und die C++ Fassung rausgeschmisse, diese könnt ihr aber hier saugen:
www.progdigy.com/modules.php?name=DSPack
(wäre sonst zu groß um hier hochzuladen)

Viel Spaß auch euch damit :wink:
Gruß
Einloggen, um Attachments anzusehen!