Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   über button1 eine wave Datei abspielen (https://www.delphipraxis.net/119078-ueber-button1-eine-wave-datei-abspielen.html)

technik05 20. Aug 2008 18:21


ü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:

Medium 20. Aug 2008 18:53

Re: über button1 eine wave Datei abspielen
 
ja

blink182 20. Aug 2008 19:07

Re: über button1 eine wave Datei abspielen
 
Delphi-Quellcode:

// 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;
oder

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;

mimi 21. Aug 2008 14:11

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 14:40 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