Autor Beitrag
delporum
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Fr 01.07.22 12:45 
ausblenden Delphi-Quelltext
1:
Playsound('C:\A.Wav',0,SND_FILENAME);					

geht, aber nicht
ausblenden Delphi-Quelltext
1:
sndPlaySound('C:\A.Wav',Snd_Async);					

aber schon
ausblenden Delphi-Quelltext
1:
sndPlaySound('C:\A.Wav',Snd_sync);					

aber ich möchte das mein program weiter läuft und mixen.
und ist das fehlerfrei:
ausblenden Delphi-Quelltext
1:
2:
SoundPointer^=(Header+)Wave
sndPlaySound(SoundPointer,Snd_Memory Or Snd_Async)


Moderiert von user profile iconTh69: Delphi-Tags hinzugefügt
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1321
Erhaltene Danke: 117

Win 10
RIO, CE, Lazarus
BeitragVerfasst: Fr 01.07.22 14:47 
Na? Gibt in der DP wohl keine verwertbaren Antworten?
An den Nutzern liegt das nicht. Sondern daran dass Du nicht mitarbeitest!

Crosspost:
www.delphipraxis.net...und-nicht-immer.html

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 01.07.22 15:00 
Hast du schon den Rückgabewert der Funktion überprüft?
delporum Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Sa 02.07.22 15:13 
der rückgabewert bei sndPlaySound ist bei Embarcadero 10.4 nur boolean,
und obwohl kein ton gespielt wird ist er true.

Moderiert von user profile iconTh69: Delphi-Tags hinzugefügt
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Sa 02.07.22 16:00 
Ich sehe gerade, hast du schon folgendes probiert:
ausblenden Delphi-Quelltext
1:
PlaySound('C:\A.Wav'0, SND_FILENAME OR SND_ASYNC);					
?
Ansonsten, in welchem Projekt (Konsole, Windows) verwendest du es? Und was macht dein Code danach dann?

PS: sndPlaySound gibt es ja nur aus Gründen der Rückwärtskompatibilität (und sollte daher nicht mehr in aktuellen Projekten verwendet werden).
delporum Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: So 03.07.22 11:53 
async bei beiden funktionen ist stumm und liefert true.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: So 03.07.22 13:06 
Mit so wenig Informationen kann man dir nicht weiterhelfen.

Edit: Gerade noch mal gesucht, schau mal ob der Code von Sound abspielen, wie? (also HInstance verwenden) funktioniert?!
delporum Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Mo 04.07.22 12:25 
da ich ja nur 1 zeile habe, bei den anderen fällen, und nur bei änderung sync in async nicht spielt, weiss ich nicht welches hinstance?

Moderiert von user profile iconTh69: Delphi-Tags hinzugefügt
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mo 04.07.22 14:01 
Ich habe dir extra den Link dazu gegeben, es ist eine globale Variable, die du einfach verwenden kannst (zumindestens in Windows VCL-Projekten).
delporum Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Di 05.07.22 06:37 
ausblenden Delphi-Quelltext
1:
Playsound('D:\A.Wav',hinstance,SND_FILENAME or snd_async);					
geht auch nicht.

Moderiert von user profile iconTh69: Delphi-Tags hinzugefügt
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 05.07.22 09:55 
Diese uralten Funktionen wie PlaySound unterstützen kein paralleles Abspielen mehrerer Sounds. Du kannst nur einen Sound asynchron starten, aber keinen weiteren parallel dazu abspielen.

Dafür kannst du z.B. die bass.dll verwenden:
www.un4seen.com/
Diese ist sehr umfangreich, aber für deinen Zweck brauchst du davon nicht viel. Beispiele sind dabei.

Hauptsächlich benötigst du die Funktionen BASS_StreamCreateFile zum Zugriff auf die Datei und BASS_ChannelPlay zum Abspielen.

Natürlich brauchst du etwas Zeit, um dich darin einzuarbeiten. Aber so simpel wie du es dir vorstellst, ist das ganze nicht. Die Zeit solltest du investieren, damit du auch ein gutes Ergebnis bekommst. Hier gibt es auch ein Tutorial zu dem Thema, aber das ist sehr viel umfangreicher als das, was du brauchst. Insofern könnte es dich auch verwirren. Aber immerhin siehst du dort Beispiele für die Verwendung der genannten Funktionen:
www.delphi-treff.de/...infacher-mp3-player/
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 05.07.22 10:51 
So wie ich die Doku verstehe, sollte es mit SND_NOSTOP gehen, mehrere Sounds im selben Prozess zu verwenden (ausprobiert habe ich das aber noch nicht).
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 05.07.22 12:23 
user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
So wie ich die Doku verstehe, sollte es mit SND_NOSTOP gehen, mehrere Sounds im selben Prozess zu verwenden (ausprobiert habe ich das aber noch nicht).
Nein, das sorgt nur dafür, dass ein bestehender Sound nicht gestoppt wird. Der neue wird dann aber nicht abgespielt. Paralleles Abspielen ist mit dieser API nicht möglich.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 05.07.22 12:38 
OK, also nur maximal 1 asynchroner Sound. Dann ist die "BASS audio library" wirklich die beste Wahl dafür.
delporum Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Di 05.07.22 18:19 
was könnt ihr dazu sagen, dass bass.dll nicht 64-Bit ist?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 05.07.22 18:26 
user profile icondelporum hat folgendes geschrieben Zum zitierten Posting springen:
was könnt ihr dazu sagen, dass bass.dll nicht 64-Bit ist?
Wie kommst du darauf?
Es stimmt nämlich nicht, wie ein Blick auf die verlinkte Webseite ("64-bit support - Both 32-bit and 64-bit architectures are supported") oder in den Download (zweite bass.dll im Unterordner x64) zeigen würde.

Davon abgesehen ist 64-Bit für eigene Anwendungen fast immer gar nicht wirklich nötig.