AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi sndPlaySound... und wenn fertig dann...
Thema durchsuchen
Ansicht
Themen-Optionen

sndPlaySound... und wenn fertig dann...

Ein Thema von NikoMitDaMacht · begonnen am 2. Mai 2004 · letzter Beitrag vom 3. Mai 2004
Antwort Antwort
Benutzerbild von NikoMitDaMacht
NikoMitDaMacht

Registriert seit: 27. Apr 2004
Ort: Freiburg
298 Beiträge
 
Delphi 6 Enterprise
 
#1

sndPlaySound... und wenn fertig dann...

  Alt 2. Mai 2004, 00:29
Hallo erst mal.
1. in Public hab ich
Code:
stop : boolean
2. OnFormCreate
stop:=true; 3. einen button :
Delphi-Quellcode:

if stop=true then
    begin
        if sndPlaySound('C:\1.wav', snd_Async or snd_NoDefault) then
           begin
           button1.caption:='STOP';
           timer1.enabled:=true;
           end;
    end

else
    begin
    stop:=true;
    sndPlaySound(nil, snd_sync or snd_NoDefault);
    button1.caption:='PLAY'
    end;
4. den timer1 (interval=1)
Delphi-Quellcode:
if button1.Caption='STOPthen stop:=false;
timer1.enabled:=false;
das ganze klappt auch wunderbar so (wenn ich auf button1 klicke spielt er was und wenn ich noch mal klick dann nicht)
doch jetzt würd ich gerne das ganze noch so haben dass wenn er die wave komplett gespielt hat, er
dass ...
Delphi-Quellcode:
button1.caption:='PLAY';
stop:=true;
...macht.
rafft den code jemand?
Niko
Alles was ein Ende hat, hat auch ein Anfang
  Mit Zitat antworten Zitat
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#2

Re: sndPlaySound... und wenn fertig dann...

  Alt 2. Mai 2004, 00:36
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender:TObject);
begin
if Button1.Caption = 'PLAYthen
  begin
  Application.ProcessMessages;
  Button1.Caption:='STOP';
  sndPlaySound('C:\1.wav', snd_Async or snd_NoDefault);
  Application.ProcessMessages;
  Button1Click(Button1);
  end
else
  begin
  Button1.Caption:='PLAY'
  sndPlaySound(nil, snd_sync or snd_NoDefault);
  end;
end;
Vielleicht hilft dir das ja ein wenig weiter!
  Mit Zitat antworten Zitat
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#3

Re: sndPlaySound... und wenn fertig dann...

  Alt 2. Mai 2004, 00:39
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender:TObject);
begin
if Button1.Caption = 'PLAYthen
  begin
  Button1.Caption:='STOP';
  Timer1.Enabled:=true;
  sndPlaySound('C:\1.wav', snd_Async or snd_NoDefault);
  end
else
  begin
  Button1.Caption:='PLAY';
  Timer1.Enabled:=false;
  sndPlaySound(nil, snd_sync or snd_NoDefault);
  end;
end;

procedure TForm1.Timer1Timer(Sender:TObject);
begin
sndPlaySound('C:\1.wav', snd_Async or snd_NoDefault)
end;
Oder vielleicht auch das?!?
  Mit Zitat antworten Zitat
Benutzerbild von NikoMitDaMacht
NikoMitDaMacht

Registriert seit: 27. Apr 2004
Ort: Freiburg
298 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: sndPlaySound... und wenn fertig dann...

  Alt 2. Mai 2004, 13:42
Ähm... Nein das hiflt mir nicht
Niko
Alles was ein Ende hat, hat auch ein Anfang
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: sndPlaySound... und wenn fertig dann...

  Alt 2. Mai 2004, 13:48
Also ich würdes nicht async sondern sync verwenden. Das ganze dann in nen thread packen. Und dann beim beenden des threads die variable setzen. Kannst das natürlich auch ohne thread machen aber dann hängt die anwendung in der zeit
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von NikoMitDaMacht
NikoMitDaMacht

Registriert seit: 27. Apr 2004
Ort: Freiburg
298 Beiträge
 
Delphi 6 Enterprise
 
#6

Re: sndPlaySound... und wenn fertig dann...

  Alt 2. Mai 2004, 13:51
Ahh so klappts
Delphi-Quellcode:
if Button1.Caption = 'PLAYthen
  begin
  Button1.Caption:='STOP';
  Application.ProcessMessages;
  PlaySound('C:\1.wav', snd_Async or snd_NoDefault, 0);
  Application.ProcessMessages;
  button1.Caption:='PLAY'
  end
else
  begin
  Button1.Caption:='PLAY' ;
  sndPlaySound(nil, snd_sync or snd_NoDefault);
  end;
weiss zwar nich warum ich am ende von PlaySound eine 0 machen musste aber es funktioniert.
DANKE
Niko
Alles was ein Ende hat, hat auch ein Anfang
  Mit Zitat antworten Zitat
Benutzerbild von NikoMitDaMacht
NikoMitDaMacht

Registriert seit: 27. Apr 2004
Ort: Freiburg
298 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: sndPlaySound... und wenn fertig dann...

  Alt 2. Mai 2004, 13:52
Ähh was ist ein "thread"
Niko
Alles was ein Ende hat, hat auch ein Anfang
  Mit Zitat antworten Zitat
Benutzerbild von NikoMitDaMacht
NikoMitDaMacht

Registriert seit: 27. Apr 2004
Ort: Freiburg
298 Beiträge
 
Delphi 6 Enterprise
 
#8

Re: sndPlaySound... und wenn fertig dann...

  Alt 2. Mai 2004, 13:57
ohh.. es klappt doch nicht du hast recht ,SirThornberry, die anwendug hängt
kannst du mir das mit dem Thread mal für hauptschüler erklären ( nich das ich einer bin!!)
Niko
Alles was ein Ende hat, hat auch ein Anfang
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: sndPlaySound... und wenn fertig dann...

  Alt 2. Mai 2004, 15:07
hier bissl source der dein problem lösen sollte
Delphi-Quellcode:
  TSoundThread = class(TThread)
  protected
    procedure Execute; override;
  end;

  TForm1 = class(TForm)
  [...]
  private
    procedure fThreadvorbei(Sender: TObject);
    [...]
  end;

[...]
procedure TSoundThread.Execute;
begin
  sndPlaySound('c:\windows\media\ringout.wav', snd_sync or snd_NoDefault)
end;

procedure TForm1.fThreadvorbei(Sender: TObject);
begin
  stop:=true;
end;

procedure TForm1.Button1Click(Sender: TObject);
var Lthread: TSoundThread;
begin
  Lthread := TSoundThread.Create(False);
  LThread.OnTerminate := fThreadvorbei;
  LThread.Resume;
  stop := false;
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von NikoMitDaMacht
NikoMitDaMacht

Registriert seit: 27. Apr 2004
Ort: Freiburg
298 Beiträge
 
Delphi 6 Enterprise
 
#10

Re: sndPlaySound... und wenn fertig dann...

  Alt 3. Mai 2004, 13:11
Ja gut soweit, doch wie kann man das jetzt so machen das wenn man mochmal
auf den button drück der playsound wieder aufhört
(sndPlaySound(nil, snd_sync or snd_NoDefault) )
Niko
Alles was ein Ende hat, hat auch ein Anfang
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:19 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