![]() |
Wenn Lied fertig ist neues Abspielen.
Hallo,
Ich habe in einer Datei 10 midis (1.mid, 2.mid ...) und starte sie wenn ich auf einen Button klick so:
Delphi-Quellcode:
Funktioniert auch, aber ich möchte jetzt, wenn ein midi zu ende ist das ein neues automatisch per zufall gespielt wird, wie mach ich das?
randomize;
y:=random(9) + 1; Mediaplayer.FileName := 'midi/' + inttostr(y) + '.mid'; Mediaplayer.Open; Mediaplayer.Play; Ferby |
Re: Wenn Lied fertig ist neues Abspielen.
Sieh dir mal
![]() OnNotify wird immer dann ausgeführt, wenn der Track zu ende gespielt wurde :zwinker: |
Re: Wenn Lied fertig ist neues Abspielen.
Hallo,
Ich habe jetzt follgendes gemacht:
Delphi-Quellcode:
Jetzt wird das Midi was als ersters per zufall gewählt wurde dauernt wiederholt???
procedure TForm1.MediaPlayerNotify(Sender: TObject);
var y:byte; begin randomize; y:=random(9) + 1; Mediaplayer.FileName := 'midi/' + inttostr(y) + '.mid'; Mediaplayer.Play; end; Das verstehe ich nicht, warum wird kein anderes midi gewählt??? Wenn ich die procedure TForm1.MediaPlayerNotify weglasse dann wird dan kommt nach den zufalls midi nichts mehr, wenn ich sie mache wird das selbe midi dauernt wiederholt, wissoooooo???? |
Re: Wenn Lied fertig ist neues Abspielen.
muss da nicht ein MediaPlayer.Load oder so dazwischen? :gruebel:
oder Open? |
Re: Wenn Lied fertig ist neues Abspielen.
Hi,
habe den Fehler gefunden, muss nochmal:
Delphi-Quellcode:
habe gedacht das brauch ich nicht mehr!
Mediaplayer.Open;
|
Re: Wenn Lied fertig ist neues Abspielen.
Hallo,
Ich habe nochmal eine ähnliche Frage, diesmal verzichte ich aber aus bestimmten Gründen auf den TMediaPlayer. Ich Spiele Midis so ab und stoppe sie.
Delphi-Quellcode:
procedure TForm1.PlayClick(Sender: TObject);
begin MCISendString(PChar('Play ' + Edit_FileName.Text), nil, 0, 0); end; procedure TForm1.StopClick(Sender: TObject); begin MCISendString(PChar('Stop ' + Edit_FileName.Text), nil, 0, 0); end; Das funktioniert super. Mein Problem: Ich möchte, wenn das Midi zu Ende ist, das die Prozedur PlayClick ausgelöst wird. Edit_FileName.Text kann sich in der Zwischenzeit geändert haben. Sprich wenn das aktuelle Midi fertig ist, soll das Midi abgespielt werden, das jetzt in Edit_FileName.Text drin steht. Wie mach ich das, ich nehme an wieder mit Notify, ich habe aber keine Ahnung wie ich das genauer mache..... Und noch eine zweite Frage, muss ich die prozedur StopClick auch dann auslösen, wenn das Midi zu ende ist, oder nicht? |
Re: Wenn Lied fertig ist neues Abspielen.
einfach
Delphi-Quellcode:
und fertig :-D
PlayClick(Sender);
PS: (jetzt auch den zweiten Teil der Frage gelesen) wie genau man mitbekommt dass das Midi zuende abgespielt ist kann ich die auch nicht sagen. |
Re: Wenn Lied fertig ist neues Abspielen.
Hi,
schön das du dir wenigstens die Mühe machst einen Teil der Frage zu lesen^^ Aber diesen Teil habe ich auch schon alleine geschafft. Zitat:
allerdings kenn ich mich mit Handels nicht so wirklich aus....... |
Re: Wenn Lied fertig ist neues Abspielen.
Nunja, der Aufruf des ButtonClicks wird ja auch in einem TNotifyEvent gespeichert...
Und ich dachte du würdest dich darauf beziehen^^ |
Re: Wenn Lied fertig ist neues Abspielen.
Zitat:
Also ich versteh jetzt nicht ganz was das mit meinem Problem zu tun hat...... ?? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 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