AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TMediaPlayer Loop

Ein Thema von Demyxa · begonnen am 3. Mär 2018 · letzter Beitrag vom 3. Mär 2018
Antwort Antwort
Demyxa

Registriert seit: 2. Mär 2018
14 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

TMediaPlayer Loop

  Alt 3. Mär 2018, 12:32
Ich hab das Forum durchstöbert, konnte aber leide keine Lösung finden.
Mein MediaPlayer läuft 5 Minuten, soll aber in einer Endlosschleife laufen.

Code:
procedure TForm1.Label18Click(Sender: TObject);
var
BATK : Real;
begin
  if MediaPlayer1.Position=MediaPlayer1.EndPos then  //abfrage ob der Player beim Ende ist
  begin
  MediaPlayer1.FileName:=OpenDialog1.FileName;
  MediaPlayer1.Open;
  MediaPlayer1.Play;
  end;
ist das was ich im Moment nutze, jedoch ist es weder eine Endlosschleife sondern einfach ein "zweiter Playbutton"
und dazu auch noch nicht mal funktional.

Ich hatte eine permanente Abfrage Schleife im Kopf, jedoch hab ich schlechte Erfahrungen
mit diesen und schrecke vor der Idee eher zurück.

Und das Ding 20-Mal in Audacity zu loopen wäre einfach nur meh.
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#2

AW: TMediaPlayer Loop

  Alt 3. Mär 2018, 16:46
Hmm..

Unter D6 hat der MediaPlayer ein OnNotyfy..
Wird aufgerufen, wenn ein Statuswechsel stattgefunden hat.
Somit müsstest Du dort nur bei Status 'STOP' das Video wieder starten..
  Mit Zitat antworten Zitat
Demyxa

Registriert seit: 2. Mär 2018
14 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

AW: TMediaPlayer Loop

  Alt 3. Mär 2018, 18:42
Das würde als Code wie exakt aussehen?
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#4

AW: TMediaPlayer Loop

  Alt 3. Mär 2018, 19:44
Hmm..

(OK, Hintern hinter her tragen )

So gehts bei D6:

Delphi-Quellcode:
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
var
  MP : TMediaPlayer;
begin
  MP := TMediaPlayer(Sender);

  if (MP.Mode = mpStopped) and (MP.Position = MP.Length) then //abfrage ob der Player beim Ende ist
  begin
    MP.Open;
    MP.Play;
  end;
  { Beachten Sie, daß die Eigenschaft Notify auf True gesetzt werden muß, }
  { damit bei der nächsten Modusänderung }
  { eine Benachrichtigung erfolgt. }
  MP.Notify := True;
end;
Wenn der Player am Ende angekommen ist und dort Stopt, wird OnNotify aufgerufen...
Damit dies nur beim Erreichen des Ende zu einem Neustart kommt, dort die Position abfragen.
Da bei mir bei MP.End immer 0 steht, mache ich das mit MP.Length.

Der '{Beachten...}' Kommentar kommt aus dem D6 Beispiel-Src...
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz