Playsound + pfad selbst bauen
-
- Beiträge: 81
- Registriert: Sa 1. Mai 2021, 15:39
Playsound + pfad selbst bauen
Hallo,
Ich habe 4 Sounddatein die sollen nacheinander abgespielt werden. Die Benennung ist 1.wav 2.wav 3.wav usw.
Meine Vorstellung im Kopf war das ich einfach per Format oder dem + einen Pfad bauen könnte für Playsound. Das ist wohl nicht so einfach (eventuell ja doch) alla
PlaySound(format('/Sounds/%d.wav',[count]),0,SND_ASYNC);
Das geht leider nicht. da ich einen Ansistring übergebe anstelle von einem PChar. Jetzt sind wir bei meinem Persönlichem Problem. PChar ist glaube ich ein Pointer auf einen Character richtig?
Ich habe im Moment noch keinerlei Vorstellung wie ich das lösen könnte, da ich mit Pointer noch nicht großartig in Berührung gekommen bin in Pascal. Und ich auch nicht genau weiß wonach ich jetzt suchen soll um die Sounds nacheinander abzuspielen. Außer einer Art Switch / Case. Kann mir jemand dabei helfen den Knoten zu lösen?
Grüße
Ich habe 4 Sounddatein die sollen nacheinander abgespielt werden. Die Benennung ist 1.wav 2.wav 3.wav usw.
Meine Vorstellung im Kopf war das ich einfach per Format oder dem + einen Pfad bauen könnte für Playsound. Das ist wohl nicht so einfach (eventuell ja doch) alla
PlaySound(format('/Sounds/%d.wav',[count]),0,SND_ASYNC);
Das geht leider nicht. da ich einen Ansistring übergebe anstelle von einem PChar. Jetzt sind wir bei meinem Persönlichem Problem. PChar ist glaube ich ein Pointer auf einen Character richtig?
Ich habe im Moment noch keinerlei Vorstellung wie ich das lösen könnte, da ich mit Pointer noch nicht großartig in Berührung gekommen bin in Pascal. Und ich auch nicht genau weiß wonach ich jetzt suchen soll um die Sounds nacheinander abzuspielen. Außer einer Art Switch / Case. Kann mir jemand dabei helfen den Knoten zu lösen?
Grüße
Re: Playsound + pfad selbst bauen
PlaySound(PCHAR(format('/Sounds/%d.wav',[count])),0,SND_ASYNC);


Gruß, Michael
-
- Beiträge: 81
- Registriert: Sa 1. Mai 2021, 15:39
Re: Playsound + pfad selbst bauen
Doch so einfach XD
Vielen Dank
Vielen Dank

Re: Playsound + pfad selbst bauen
Bitte gib mir Nachhilfe: Was ist das für ein Playsound? Sowas ist mit "Find in files" im ganzen Laz/FPC-Verzeichnis nicht zu finden. Unter Windows heißt das sndPlaySound. Und unter Linux/mac gibt es sowas allgemeines eigentlich gar nicht (aber ich bin da kein Experte). Oder meinst du das PlaySoundPackage im CCR oder OPM? da gibt es eine TPlaySound-Komponente mit einer Methode PlaySound, aber die ist protected und von außen nicht ohne weiteres aufrufbar, und hat andere Aufrufparameter.
-
- Beiträge: 81
- Registriert: Sa 1. Mai 2021, 15:39
Re: Playsound + pfad selbst bauen
Danke, das Typecast muss ich mir unbedingt genauer anschauen.
Leider geht das wohl doch nicht so richtig.
Es kommt nur der Fehler Sound von Windows wenn der Sound abgespielt werden soll. Allerdings keine Fehlermeldung in Lazarus.
wp_xyz:
Ich hab gegoogelt wie man Sound Dateien abspielen kann in Lazarus, und da soll man wohl bei Uses das MMSystem einbinden. Und dann kann man mit "PlaySound(x1:PChar;x2:HModule;x3:DWORD):BOOL" Sounds abspielen. Wenn ich den Pfad an der Stelle von x1 direkt eingebe in der form von "PlaySound('Sounds/1.wav',0,SND_ASYNC);" gehts auch
Nur irgendwie hats Probleme wenn ich selbst den Pfad bauen möchte.
Falls es natürlich alternativen zu dem PlaySound gibt. Bin ich ganz Ohr.
Leider geht das wohl doch nicht so richtig.

wp_xyz:
Ich hab gegoogelt wie man Sound Dateien abspielen kann in Lazarus, und da soll man wohl bei Uses das MMSystem einbinden. Und dann kann man mit "PlaySound(x1:PChar;x2:HModule;x3:DWORD):BOOL" Sounds abspielen. Wenn ich den Pfad an der Stelle von x1 direkt eingebe in der form von "PlaySound('Sounds/1.wav',0,SND_ASYNC);" gehts auch

Falls es natürlich alternativen zu dem PlaySound gibt. Bin ich ganz Ohr.
-
- Beiträge: 81
- Registriert: Sa 1. Mai 2021, 15:39
Re: Playsound + pfad selbst bauen
Ja... man sollte auch das erste '/' vom Pfad wegmachen... dann geht alles.
FAALSCH
PlaySound(PCHAR(format('/Sounds/%d.wav',[count])),0,SND_ASYNC);
RICHTIG !
PlaySound(PCHAR(format('Sounds/%d.wav',[count])),0,SND_ASYNC);
Danke für eure Hilfe.
FAALSCH
PlaySound(PCHAR(format('/Sounds/%d.wav',[count])),0,SND_ASYNC);
RICHTIG !
PlaySound(PCHAR(format('Sounds/%d.wav',[count])),0,SND_ASYNC);
Danke für eure Hilfe.
Re: Playsound + pfad selbst bauen
hmmm, eigentlich ist das auch nicht ganz richtig...
schau dir das mal an: https://www.freepascal.org/docs-html/rt ... delim.html
schau dir das mal an: https://www.freepascal.org/docs-html/rt ... delim.html
Gruß, Michael
-
- Beiträge: 81
- Registriert: Sa 1. Mai 2021, 15:39
Re: Playsound + pfad selbst bauen
oh ok. das schau ich mir mal an. Danke
Re: Playsound + pfad selbst bauen
Ach so. Es gibt also in Windows neben sndPlaySound() auch noch ein PlaySound(). Welch Luxus.nevermore2k hat geschrieben: So 2. Okt 2022, 12:35 Ich hab gegoogelt wie man Sound Dateien abspielen kann in Lazarus, und da soll man wohl bei Uses das MMSystem einbinden.