Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi MediaPlayer Stockt (https://www.delphipraxis.net/20699-mediaplayer-stockt.html)

TheMiller 21. Apr 2004 19:33


MediaPlayer Stockt
 
Hi,

habe mal wieder ein Problem. Habe eine Trackbar, einen Mediaplayer und einen Timer. In dem Timer habe ich stehen, dass die Trackbar die Position des MediaPlayers annhemen soll.

Delphi-Quellcode:
Trackbar1.Position:=MediaPLayer1.Position;
der Intervall steht auf einer Sekunde. Wenn die Bar umspringt, dann stockt das Lied kurz und geht dann weiter. Warum?

Ultimator 22. Apr 2004 13:20

Re: MediaPlayer Stockt
 
Ich weiß jetzt nicht genau wieso, aber probier's doch mal mit einer Variable, wo du den Zustand reinschreibst. Etwa so:
Delphi-Quellcode:
Position:=MediaPLayer1.Position;
Trackbar1.Position:=Position;

Matze 22. Apr 2004 13:25

Re: MediaPlayer Stockt
 
Hast du evtl. im TrackBar OnChange etwas drinstehen?

Denn während dem Abspielen wird das OnChange der TB ja aufgerufen? :gruebel:

Matze 22. Apr 2004 13:27

Re: MediaPlayer Stockt
 
Hier habe ich in der DP noch was gefunden, vieleicht hilft's dir ja.

Das hat himitsu hier geschrieben:

Delphi-Quellcode:
{Timer1.Interval := 300;} 
{TrackBar1.Max := MediaPlayer1.Length div 1000;} 

Procedure TForm1.Timer1Timer(Sender: TObject);
  Begin
    (* TrackBar-Position an die MediaPlayer-Position anpassen *)
    TrackBar1.Position := MediaPlayer1.Position div 1000;
  End;

Procedure TForm1.TrackBar1Change(Sender: TObject);
  Var TBP, MPP: Integer;

  Begin
    TBP := TrackBar1.Position;
    MPP := MediaPlayer1.Position div 1000;
    (* MediaPlayer-Position an die TrackBar-Position anpassen, * 
     * wenn der Unterschied grösser als 2 Sekunden ist        *)
    If ABS(TBP - MPP) > 2 Then MediaPlayer1.Position := TBP * 1000;
  End;

Robert_G 22. Apr 2004 13:30

Re: MediaPlayer Stockt
 
Du hast mit Sicherheit auch noch sowas:
Im OnChange der TrackBar:

Delphi-Quellcode:
 MediaPlayer.Position := TrackBar.Value;
Der Timer ändert die TrackBar, dadurch wird wieder die Mediaplayer position verschoben (und zwar um mindestens einen Frame zurück), ... . :mrgreen:

Totale Simpellösung wäre:
Delphi-Quellcode:
  Trackbar1.OnChange := nil;
  Trackbar1.Position:=MediaPLayer1.Position;
  Trackbar1.OnChange := TrackBarChange;
p.s.: Warum bist du eigentlich von DSPack auf TMediaPlayer zurückgewechselt :?: :shock:

Edit: Ich war wohl wieder zu lahm.... :shock:

TheMiller 22. Apr 2004 14:23

Re: MediaPlayer Stockt
 
Danke für die vielen Antworten. Das hört sich gut an. So wird es auch sein. Werde es mal testen. Doch was ist bitte DSPack?

Robert_G 22. Apr 2004 14:32

Re: MediaPlayer Stockt
 
:gruebel:
Dann habe ich dich wohl mit einer anderen DPse verwechselt....

DSPack ist eine Kapselung von DirectShow in visuelle & nicht-visuelle Komponenten.
Im Endeffekt kann man damit das machen, was der TMediaplayer nicht wirklich kann: Mediendateien abspielen :mrgreen:

Einfach mal bei SourceForge suchen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:37 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