![]() |
TMediaPlayer aktualisiert nicht immer das Bild
Ein neuer Tag, eine neue Frage.
Mein Mediaplayer spielt wunderbar Avi/ Mpg/ wmv auslesen von length und position..... klappt auch. Zum Vorspulen habe ich Frames := 100; gesetzt, geht auch. Zur Funktion: Nach dem öffnen eines Videos wird mir das erste Bild angezeigt und nach betätigung des Play Button läuft der Film. Nach betätigen von Vorspulen/ Rückspulen sehe ich ein Bild 100 Frames weiter.Nach Play läuft es dann an dieser Pos. weiter. Alles Wunderbar bei avi/wmv/mpg1 Nun mein Problem: Bei einem mpg2 file wird das Video geladen, aber das erste Bild erst nach play angezeigt, ebenso nach Vor-/rückspulen, muß ich erst auf play drücken um zu sehen wo ich bin. Wiso? Hier noch ein bischen vom relevanten code:
Delphi-Quellcode:
implementation
{$R *.dfm} function fzeit (x :Integer):string; var h, m, s, temp :integer; begin temp := x mod 3600; h := x div 3600; m := temp div 60; s := temp mod 60; Result := Format('%.2d:%.2d:%.2d',[h, m, s]); end; procedure TForm1.ButtonStartClick(Sender: TObject); begin with MediaPlayer1 do begin TimeFormat := tfMilliseconds; //FileName := 'C:\temp\test2\CMOS.mpg'; if opendialog1.execute then Filename:=opendialog1.Filename; Open; StartPos := TrackPosition[1]; EndPos := TrackLength[1]; // Headerinfo: Länge LabelStartPos.Caption := fzeit(StartPos); LabelEndPos.Caption := fzeit(EndPos div 1000); //Länge in hh:mm:ss DisplayRect := Rect(0, 0, 329, 265); //wiedergabeposition im Rect. Frames := 100; // Anz.Frames die Vor u. Rueck gesprungen wird. LabelFilename.Caption := opendialog1.filename; //LabelFilename.Caption := FileName; TrackBar1.Max := EndPos div 1000; Enabled := true; end; ButtonStart.Enabled := false; ButtonReset.Enabled := true; ButtonLoeschen.Enabled := true; end; procedure TForm1.Timer1Timer(Sender: TObject); begin labelZeit.Caption := fzeit(Mediaplayer1.Position div 1000); trackbar1.Position := Mediaplayer1.Position div 1000; mediaplayer1.StartPos := Mediaplayer1.Position; end; procedure TForm1.TrackBar1Change(Sender: TObject); begin LabelTrackPos.Caption := intToStr(TrackBar1.Position); end; |
Re: TMediaPlayer aktualisiert nicht immer das Bild
mpeg2 ist schon ein ziemlicher Brocken. Ich denke es liegt eher an deinem mpeg2-Codec, als an TMediaPlayer, da der auch nur das darstellt, was ihm der Codec liefert. Und so RICHTIG vernünftige mpeg2-Codecs habe ich auch noch nicht wirklich gesehen. Zumindest keine freien. WinDVD etc. haben einen fest einprogrammiert, und der musste auch für teuer Geld lizensiert werden. (DVD's sind als mpeg2 hinterlegt meine ich.)
Ich würde mich also an deiner Stelle nochmal nach einem anderen Codec umsehen, und dann schauen, ob's geholfen hat. Wenn nicht, dann weiss ich auch nicht weiter ;). Aber so wirklich schlimm ist das Problem ja nicht, oder!? :roll: n8i, dizzy |
Re: TMediaPlayer aktualisiert nicht immer das Bild
Moin dizzy,
ja Du hast recht DVD nutzt mpg2 codecs, die ich auch auf meinem Rechner Installiert habe. => Win MediaplayerS9 zeigt die Filme problemlos an. Und ich denke TMp greift auf diese zu, wenn sie erforderlich sind. Oder muß ich die expliziet in Delphi bekannt geben? Zitat:
Allerdings wenn ich Vorspule wäre es schon schön zu sehen wo ich mich akt. befinde. Ich werde dran bleiben. cu FF |
Re: TMediaPlayer aktualisiert nicht immer das Bild
Naja gut, dann könnte es sehr wohl an TMediaPlayer liegen. Der Player von MS nutzt nämlich DirectX zum Zeichnen des Overlays, und TMediaPlayer ist ein MCI-Gerät. Da kann es durchaus sein, dass die sich recht unterschiedlich verhalten. Haste Recht.
Nur da hab ich dann, wie gesagt, leider auch keine Idee mehr. Bleibt mir nur noch zu sagen: Viel Glück!? :roll: 8) gruss, dizzy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:58 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