Entwickler-Ecke
Multimedia / Grafik - TMediaplayer Wiederholungen
Horst - Do 13.06.02 20:13
Titel: TMediaplayer Wiederholungen
Wie kann ich dem TMediaplayer beibringen das er einen
sound mehrmals (Anzahl angeben) abspielt (play).
Danke für einen hilfreichen tipp.
Arakis - Do 13.06.02 20:47
Den offiziellen Weg kenn ich nicht. Ich mach das so, in dem ich permanent abfrage, ob das Liedende erreicht worden ist. Dazu muss man aber Autoopen glaub ich auf false setzten, was wiederrum bedeutet, dass man selbst für das starten, stoppen verantwortlich ist. Es gibt garantiert bessere Lösungen :wink:
Schau dir einfach mal mein DockPlayer(MP3-Player) an:
http://www.entwickler-ecke.de/viewtopic.php?t=66 (Sparte "Eure Delphi Projekte")
Da habe ich einen TMediaPlayer im Hintergrund laufen, steuere diesen aber durch meine eigenen Buttons.
Bis dann
Thunderman - Do 13.06.02 21:32
Wenn ich mich jetzt richtig erinner, geht das mit einem OnNotifyEvent und Wait auf True gestellt (oder war es False?). Weiß aber nicht mehr genau wie. Dieses Event wird meine ich ausgelöst, wenn der MediaPlayer was ändert, also anfängt, aufhört, etc.
DieHardMan - Do 13.06.02 23:21
nur zur errinerung
| Zitat: |
| OnNotify tritt ein, sobald die Ausführung einer Methode zur Steuerung des Media-Players (Back, Close, Eject, Next, Open, Pause, PauseOnly, Play, Previous, Resume, Rewind, StartRecording, Step oder Stop) beendet ist. Voraussetzung dafür ist allerdings, daß die Eigenschaft vor dem Aufruf der Methode auf True gesetzt wurde. Nach einem OnNotify-Ereignis muß die Eigenschaft Notify erneut auf True gesetzt werden, damit das nächste OnNotify-Ereignis eintreten kann. |
webmaker - Di 18.06.02 20:52
stand da nicht auch was in der FAQ vom alten DF drin??
Horst - Mi 19.06.02 21:56
| Thunderman hat folgendes geschrieben: |
| Wenn ich mich jetzt richtig erinner, geht das mit einem OnNotifyEvent und Wait auf True gestellt (oder war es False?). Weiß aber nicht mehr genau wie. Dieses Event wird meine ich ausgelöst, wenn der MediaPlayer was ändert, also anfängt, aufhört, etc. |
das onNotify-Event ist genau richtig: :idea:
Einfach rewind u. play reinschreiben und man hat eine Endlosschleife,
d.h. der Sound wird endlos wiederholt. Man braucht also nur einen
Zähler einzubinden und abzufragen und schon kann man die Wiederholungen begrenzen. Danke für den Tip.
:D
gangstaberber - Mi 17.03.04 04:26
hey
könnt ihr mal bite ein beispiel für die endlossschleife reinschreiben
denn bei mir leuft das irgendwie nicht
Mfg Berber
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| procedure TForm1.FormCreate(Sender: TObject); begin
Mediaplayer1.visible:=false; MediaPlayer1.FileName := 'song.mp3'; MediaPlayer1.Open; Mediaplayer1.play; MediaPlayer1.Notify := True; MediaPlayer1.OnNotify := NotifyProc;
procedure TForm1.NotifyProc(Sender: TObject); begin with Sender as TMediaPlayer do begin case Mode of mpStopped:Label1.caption:='stop' end;
Notify := True; end; end; |
Moderiert von
Peter Lustig: Code- durch Delphi-Tags ersetzt
Horst - Do 18.03.04 20:27
Upps, eine neue Anfrage,
ist schon ein Weilchen her, dass ich mich damit beschäftig habe :lol:
Habe mal folgenden Source rausgesucht:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| with MediaPlayer1 do begin FileName := cSoundDatei; Open; Wait := True; For i:=1 to 3 do begin Play; if not AutoRewind then Previous; end; end; |
Damit sollte es eigentlich funktionieren...
Gruß
Horst
:wave:
Moderiert von
Peter Lustig: Code- durch Delphi-Tags ersetzt
raven_22 - Sa 20.03.04 02:40
Um die Datei automatisch zu wiederholen, braucht man einen Timer.
In diesen Timer wir geprüft, ob die Datei noch läuft oder schon am Ende angekommen ist.
Wenn sie am Ende ist, wird sie zurückgesetzt und neu gestartet.
Nach jedem Durchgang, wird eine Variable um 1 erhöht.
Wenn die Datei dem Wert in Loops entsprechen wiederholt wurde, wird sie gestoppt und alles auf Null zurückgesetzt wird.
Ist eigentlich ganz einfach, wenn man mal nachdenkt.
Gruß raven 8)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82:
| unit Unit1;
interface
uses ...
type TForm1 = class(TForm) MediaPlayer1: TMediaPlayer; Timer1: TTimer; Play: TButton; Stop: TButton; procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); procedure PlayClick(Sender: TObject); procedure StopClick(Sender: TObject);
private public end;
var Form1: TForm1; Loop, Loops: Integer;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); begin MediaPlayer1.Visible:=false; MediaPlayer1.FileName:='F:\mp3\Kylie_bei_TvTotal_only_001.mp3'; MediaPlayer1.Open; Loop:= 0; Loops:= 2; end;
procedure TForm1.PlayClick(Sender: TObject); begin MediaPlayer1.Play; Timer1.Enabled:=true; form1.Caption:='Play !' end;
procedure TForm1.StopClick(Sender: TObject); begin Loop:=0; MediaPlayer1.Stop; MediaPlayer1.Rewind; Timer1.Enabled:=false; form1.Caption:='gestopt !' end;
procedure TForm1.Timer1Timer(Sender: TObject); begin if MediaPlayer1.Position = MediaPlayer1.Length then Begin MediaPlayer1.Play; Loop:=Loop+1 end;
if Loop = Loops+1 then begin MediaPlayer1.Stop; Timer1.Enabled:=False; Loop := 0; end; form1.Caption:=inttostr(loop)+ '. Wiederholung von '+inttostr(loops)+' Wiederholungen !'; end;
end. |
Moderiert von
Peter Lustig: Code- durch Delphi-Tags ersetzt
Christian S. - Sa 20.03.04 12:35
Ich bin tief getroffen und schockiert! ;-)
Keiner von Euch benutzt Delphi-Tags! Wenn ich Euch noch einmal dabei erwische, bekommt ihr Hausarrest (was einschließt, dass Ihr dann die ganze Zeit im DF rumhängt). :D
raven_22 - Sa 20.03.04 13:32
Um in Delphi zu Programmieren, reicht meine Intelligenz noch aus.
Aber was zum Teufel sind Delphi-Tags ? :shock:
Kann man das essen oder ist das eine Komponente ?
Wenn mir eine mal erklären könnte was das ist, würde ich es wohl auch benutzen.
Bitte lasst mich nicht dumm sterben ! :roll:
Gruß raven 8)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!