Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Wenn Lied fertig ist neues Abspielen. (https://www.delphipraxis.net/35390-wenn-lied-fertig-ist-neues-abspielen.html)

ferby 6. Dez 2004 15:23


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:
    randomize;
    y:=random(9) + 1;
    Mediaplayer.FileName := 'midi/' + inttostr(y) + '.mid';
    Mediaplayer.Open;
    Mediaplayer.Play;
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?


Ferby

malo 6. Dez 2004 15:31

Re: Wenn Lied fertig ist neues Abspielen.
 
Sieh dir mal Delphi-Referenz durchsuchenOnNotify an(sofern du den TMediaplayer nutzt) ;)

OnNotify wird immer dann ausgeführt, wenn der Track zu ende gespielt wurde :zwinker:

ferby 6. Dez 2004 15:48

Re: Wenn Lied fertig ist neues Abspielen.
 
Hallo,

Ich habe jetzt follgendes gemacht:

Delphi-Quellcode:
procedure TForm1.MediaPlayerNotify(Sender: TObject);
var
y:byte;
begin
  randomize;
  y:=random(9) + 1;
  Mediaplayer.FileName := 'midi/' + inttostr(y) + '.mid';
  Mediaplayer.Play;
end;
Jetzt wird das Midi was als ersters per zufall gewählt wurde dauernt wiederholt???
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????

glkgereon 6. Dez 2004 15:50

Re: Wenn Lied fertig ist neues Abspielen.
 
muss da nicht ein MediaPlayer.Load oder so dazwischen? :gruebel:

oder Open?

ferby 6. Dez 2004 15:51

Re: Wenn Lied fertig ist neues Abspielen.
 
Hi,

habe den Fehler gefunden, muss nochmal:

Delphi-Quellcode:
Mediaplayer.Open;
habe gedacht das brauch ich nicht mehr!

ferby 12. Nov 2006 19:32

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?

glkgereon 12. Nov 2006 19:35

Re: Wenn Lied fertig ist neues Abspielen.
 
einfach
Delphi-Quellcode:
PlayClick(Sender);
und fertig :-D

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.

ferby 12. Nov 2006 19:42

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:

wie genau man mitbekommt dass das Midi zuende abgespielt ist kann ich die auch nicht sagen
Ich bin mir zimlich sicher das das mit Notify und Handels geht,
allerdings kenn ich mich mit Handels nicht so wirklich aus.......

glkgereon 12. Nov 2006 19:45

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^^

ferby 12. Nov 2006 19:48

Re: Wenn Lied fertig ist neues Abspielen.
 
Zitat:

Nunja, der Aufruf des ButtonClicks wird ja auch in einem TNotifyEvent gespeichert...

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.
Seite 1 von 2  1 2      

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