Hallo zusammen,
ich habe gerade ein interessantes Problem:
Meine Applikation soll möglichst gleichmässig eine Animation synchronisiert zur
Musik abspielen, das klappt bei Audiofiles auch sehr gut. Zur Synchronisierung hole ich mir
TMediaPlayer.Position
was bei Audiofiles einen Wert in Millisekunden zurückliefert. Beim
Abspielen einer Audio-CD wechselt das Format (vermutlich historisch bedingt) auf MSF was aber auch kein Beinbruch ist, in der
Unit mmsystem gibts Makros zur Konvertierung.
ABER: Wenn in den erweiterten Einstellungen des CD/DVD-Laufwerks im Gerätemanager die "Digitale Wiedergabe" aktiviert ist, liest Windows immer so ca. eine halbe Sekunde (vielleicht 32 Frames?)
Musik am Stück von der CD. Versuche, während so eines Lesevorgangs das Property Position des TMediaPlayer auszulesen, halten meine Applikation so lange an bis der Lesevorgang beendet ist. Das sorgt dann dafür dass meine Applikation nur noch so 2-3 Bilder pro Sekunde anzeigt. Stelle die die digitale Wiedergabe ab (standardmäßig ist sie ja seit IIRC Windows 2000 aktiviert), benötige ich natürlich ein Audiokabel zwischen Laufwerk und Soundkarte aber die Positionsbestimmung geht wunderbar und mit dem gleichen hohen Tempo wie bei der Wiedergabe von Audiofiles.
Hat irgendjemand einen Tipp, wie ich diese Synchronisation auf die Audio-CD besser lösen kann?