![]() |
über button1 eine wave Datei abspielen
Hallo habe da mal eine frage,
möchte über button1 eine wave Datei abspielen, die immer gleich ist. Und dann eine schleife einrichten, z.B. 20 mal mit einem abstand von 3sec. geht das ???? :roll: |
Re: über button1 eine wave Datei abspielen
ja
|
Re: über button1 eine wave Datei abspielen
Delphi-Quellcode:
oder// aus der Delphi-Hilfe... uses mmsystem; begin {Folgende Flags können benutzt werden: SND_SYNC = Spielt den Sound ab, die Anwendung "steht" SND_ASYNC = Spielt den Sound ab, die Anwendung läuft weiter SND_LOOP = Spielt den Sound endlos} {Es können auch mehrere Flags kombiniert werden:} flag:=SND_SYNC or SND_LOOP; {Abspielen kann man einen Sound dann ganz einfach so:} sndPlaySound('sound.wav', Flag); {Um einen endlosen Sound zu stoppen, ruft die Funktion mit folgenden Parametern auf:} sndPlaySound(NIL,0); end;
Delphi-Quellcode:
uses mmsystem;
// kA von wem die schöne Delay-Prozedur war :) ist auf jedenfall Praktisch procedure Delay(Milliseconds: Integer); var Tick: DWord; Event: THandle; begin Event := CreateEvent(nil, False, False, nil); try Tick := GetTickCount + DWord(Milliseconds); while (Milliseconds > 0) and (MsgWaitForMultipleObjects(1, Event, False, Milliseconds, QS_ALLINPUT) <> WAIT_TIMEOUT) do begin Application.ProcessMessages; if Application.Terminated then Exit; Milliseconds := Tick - GetTickcount; end; finally CloseHandle(Event); end; end; procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin for i:=0 to 20 do begin PlaySOUND(PChar('asound.wav'),hInstance,snd_ASync ); delay(3000) end; end; // oder procedure TForm1.Button1Click(Sender: TObject); var i:integer; const FileName = 'asound.wav'; begin for i:=0 to 20 do begin MCISendString(PChar('play ' + FileName), nil, 0, 0); delay(3000) end; end; |
Re: über button1 eine wave Datei abspielen
Unter Delphi geht das auch nocheinfacher: Nimm einfach die TMediaPlayer Komponenten und schalte visible auf false.
dann kannst du mit MediaPlayer1.Open und MediaPlayer1.Play eine Datei Abspielen. Ich meine es müsste auch sowas wie eine endlos schleifen Modus geben, wenn nicht nutzte dafür das erste event(mir fällt der name im Moment nicht ein) und ruft dort z.b. mit hilfe von Sleep oder wie auch immer, deine Play Procedur auf. Sleep Pausiert das ganze Programm in Millisekunden. Besser währe hier ein Timer, den du Aktivierst und nach einem Interval wieder ausschaltest. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:32 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