Autor |
Beitrag |
delporum
Hält's aus hier
Beiträge: 11
|
Verfasst: Fr 01.07.22 12:45
|
|
Sinspin
Beiträge: 1332
Erhaltene Danke: 118
Win 10
RIO, CE, Lazarus
|
Verfasst: 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
Beiträge: 4785
Erhaltene Danke: 1055
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: Fr 01.07.22 15:00
Hast du schon den Rückgabewert der Funktion überprüft?
|
|
delporum
Hält's aus hier
Beiträge: 11
|
Verfasst: 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 Th69: Delphi-Tags hinzugefügt
|
|
Th69
Beiträge: 4785
Erhaltene Danke: 1055
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: Sa 02.07.22 16:00
Ich sehe gerade, hast du schon folgendes probiert:
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
Hält's aus hier
Beiträge: 11
|
Verfasst: So 03.07.22 11:53
async bei beiden funktionen ist stumm und liefert true.
|
|
Th69
Beiträge: 4785
Erhaltene Danke: 1055
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: 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
Hält's aus hier
Beiträge: 11
|
Verfasst: 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 Th69: Delphi-Tags hinzugefügt
|
|
Th69
Beiträge: 4785
Erhaltene Danke: 1055
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: 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
Hält's aus hier
Beiträge: 11
|
Verfasst: Di 05.07.22 06:37
|
|
jaenicke
Beiträge: 19285
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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
Beiträge: 4785
Erhaltene Danke: 1055
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: 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
Beiträge: 19285
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 05.07.22 12:23
Th69 hat folgendes geschrieben : | 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
Beiträge: 4785
Erhaltene Danke: 1055
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: 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
Hält's aus hier
Beiträge: 11
|
Verfasst: Di 05.07.22 18:19
was könnt ihr dazu sagen, dass bass.dll nicht 64-Bit ist?
|
|
jaenicke
Beiträge: 19285
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 05.07.22 18:26
delporum hat folgendes geschrieben : | 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.
|
|