erklär mir bitte den playsound befehl mit snd ,0 usw.shokwave hat geschrieben:Wenn es dir nur um einen Sound geht und nicht mehrere gleichzeitig, dann reicht schon:Funktioniert nur unter Windows und die Datei muss eine Wave-datei sein.Code: Alles auswählen
uses mmsystem,.. procedure TForm1.Button1Click(Sender: TObject); begin PlaySound('bang_3.wav', 0, SND_FILENAME or SND_ASYNC); end.
Edit: Freie Sounds gibts z.B. unter http://www.pacdv.com/sounds/index.html
Sounds einbinden
-
- Beiträge: 7
- Registriert: Do 31. Mai 2012, 17:25
Re: Sounds einbinden
-
- Beiträge: 565
- Registriert: So 26. Aug 2012, 09:03
- OS, Lazarus, FPC: Windows(10), Linux(Arch)
- CPU-Target: 64Bit
Re: Sounds einbinden
Hier findest du die offizielle Dokumentation zu diesem Befehl:
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Programmer: A device to convert coffee into software.
Rekursion: siehe Rekursion.
Rekursion: siehe Rekursion.
-
- Beiträge: 1579
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Sounds einbinden
Wenn das Sound abspielen Betriebssystem unabhängig funktionieren soll, geht auch die "bass.dll", google mal danach. Der kann auch mehrere Sounds gleichzeitig. Die DLL ist free und gibt es für alle möglichen Betriebssysteme.
EleLa - Elektronik Lagerverwaltung - www.elela.de
Re: Sounds einbinden
shokwave hat geschrieben:Wenn es dir nur um einen Sound geht und nicht mehrere gleichzeitig, dann reicht schon:Funktioniert nur unter Windows und die Datei muss eine Wave-datei sein.Code: Alles auswählen
uses mmsystem,.. procedure TForm1.Button1Click(Sender: TObject); begin PlaySound('bang_3.wav', 0, SND_FILENAME or SND_ASYNC); end.
Edit: Freie Sounds gibts z.B. unter http://www.pacdv.com/sounds/index.html
Richtig....
auch ich habe unter win7 folgenden code benutzt: Für ein Spiel mit diversen Sounds.........
//playsound('C:\debugTest\wavedateien\clapping.wav',0,SND_FILENAME OR SND_NODEFAULT OR SND_ASYNC ); // war für XP
playsound('C:\a_Lazprojecte\debug\wavedateien\clapping.wav',0,SND_FILENAME OR SND_NODEFAULT OR SND_ASYNC );
r:= LazarusResources.Find('clapping');
// dat:= r.value; // win7 Meckert an,habe es einfach auskommentiert...
sndPlaySound(PChar(dat),SND_MEMORY OR SND_ASYNC); //Und läuft unter win7......
-
- Beiträge: 565
- Registriert: So 26. Aug 2012, 09:03
- OS, Lazarus, FPC: Windows(10), Linux(Arch)
- CPU-Target: 64Bit
Re: Sounds einbinden
Gibt es eigentlich eine Möglichkeit mit PlaySound mehrere Sounddateien gleichzeitg abzuspielen, oder muss ich dann irgendwelche Soundbibliotheken benutzen?
MFG
Komoluna
MFG
Komoluna
Programmer: A device to convert coffee into software.
Rekursion: siehe Rekursion.
Rekursion: siehe Rekursion.
-
- Beiträge: 6
- Registriert: Di 4. Feb 2014, 16:32
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: 8700
Re: Sounds einbinden
Hallo, auch ich würde gerne einen Sound einbinden, habe allerdings eine WAV. Wenn ich es so mache, wie hier im Forum beschrieben, dann höre ich immer die ersten 5 Sekunden und dann hängt sich das ganze Programm auf. Habe es auch mal auf anderen Rechnern ausprobiert, da ich zuerst dachte, dass es an mir liegt. Wer kann mir helfen?
Re: Sounds einbinden
Hallo und herzlich willkommen im Lazarus-Forum!
Ich hoffe Du bist wirklich an einer Lösung interessiert und willst nicht nur irgendwelche Werbung/Links platzieren (6 Einträge innerhalb 10 Minuten als Newbee macht Dich verdächtig!)?!
Ansonsten habe ich eben mal getestet. PlaySound scheint ab einer gewissen Größe nicht mehr zu funktionieren - ist bei mir auch so, ansonsten könntest Du wie hier (mittels bass.dll) verfahren:
Ich hoffe Du bist wirklich an einer Lösung interessiert und willst nicht nur irgendwelche Werbung/Links platzieren (6 Einträge innerhalb 10 Minuten als Newbee macht Dich verdächtig!)?!
Ansonsten habe ich eben mal getestet. PlaySound scheint ab einer gewissen Größe nicht mehr zu funktionieren - ist bei mir auch so, ansonsten könntest Du wie hier (mittels bass.dll) verfahren:
Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
var
WAVStream: HSTREAM;
FileName: String;
begin
FileName:='xmas-special.wav';
WavStream:=BASS_StreamCreateFile(False, pchar(FileName), 0, 0, 0 {$IFDEF UNICODE} or BASS_UNICODE {$ENDIF});
if WavStream <> 0 then
BASS_ChannelPlay(WavStream, False);
end;
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Re: Sounds einbinden
"PlaySound('bell.wav', 0, SND_FILENAME or SND_ASYNC);"shokwave hat geschrieben: Do 18. Feb 2010, 22:00 Wenn es dir nur um einen Sound geht und nicht mehrere gleichzeitig, dann reicht schon:Funktioniert nur unter Windows und die Datei muss eine Wave-datei sein.Code: Alles auswählen
uses mmsystem,.. procedure TForm1.Button1Click(Sender: TObject); begin PlaySound('bang_3.wav', 0, SND_FILENAME or SND_ASYNC); end.
Edit: Freie Sounds gibts z.B. unter http://www.pacdv.com/sounds/index.html
funktioniert bei mir unter Windows einwandfrei.
Ich hatte auch das Package "playwavepackage (Tplaysound, Unplaysound)" in LazControls installiert,
funktioniert unter Linux aber macht auf Windows nur Probleme und bleibt stumm....
Gutes Gelingen
Klaus
-
- Beiträge: 6899
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Sounds einbinden
Ich würde SDL nehmenLIch hatte auch das Package "playwavepackage (Tplaysound, Unplaysound)" in LazControls installiert,
funktioniert unter Linux aber macht auf Windows nur Probleme und bleibt stumm....
Code: Alles auswählen
uses
... sdl, sdl_mixer;
var
music: PMix_Music;
scratch PMix_Chunk;
procedure TForm1.FormCreate(Sender: TObject);
begin
if SDL_Init(SDL_INIT_AUDIO) < 0 then begin
Writeln('Kann SDL nicht öffnen: ', SDL_GetError);
end;
if Mix_OpenAudio(48000, MIX_DEFAULT_FORMAT, 2, 4096) = -1 then begin
Write('Kann Audio nicht öffnen');
end;
music := Mix_LoadMUS('doom.mid');
if music = nil then begin
WriteLn('Kann Musik nicht laden');
end;
scratch := Mix_LoadWAV('scratch.wav');
if scratch = nil then begin
WriteLn('Kann Sound nicht laden');
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
Mix_FreeChunk(scratch);
Mix_FreeMusic(music);
Mix_CloseAudio;
SDL_Quit;
end;
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: Sounds einbinden
Das beigefügte Projekt verwendet die unit uPlaySound aus dem PlayWavePackage, etwas zurechtgestutzt, dass man nichts installieren muss, und das löuft unter Windows einwandfrei. Da die Unit eine windows-interne Routine aufruft, geht es natürlich nur mit wav-Dateien. Oder hast du versucht, ihm ein .mp3 unterzujubeln? Aber warum schreibst du dann 'bell.wav'?newartco hat geschrieben: So 29. Okt 2023, 16:33 Ich hatte auch das Package "playwavepackage (Tplaysound, Unplaysound)" in LazControls installiert,
funktioniert unter Linux aber macht auf Windows nur Probleme und bleibt stumm....
- Dateianhänge
-
soundPlayer.zip
- (182.73 KiB) 98-mal heruntergeladen