![]() |
Musik in Delphi hinterlegen
Hallo,
Ich versuche für mein Spiel einen einzigen MP3 Musiktitel zu hinterlegen, komme aber auch mit den schon vorhandenen Threads hier nicht weit. Ich habe folgenden code
Code:
Jedoch kommt beim Starten des Programms ein typischer Windows Fehlerton und das programm läuft einfach ohne musik ab.
procedure TForm2.FormCreate(Sender: TObject);
begin sndPlaySound(PChar(ExtractFilePath(ParamStr(0)) + '/Leveldesign/Bunnymajs - Reload.mp3'), SND_ASYNC or SND_LOOP); end; Was kann ich hier machen? Danke im Vorraus |
AW: Musik in Delphi hinterlegen
Also ich weiß nicht ob sndPlaySound MP3 abspielt - kann sein, hab es noch nicht getestet, dachte immer die spielt nur WAV ab. Gehen wir aber mal davon aus, dass das nicht das Problem ist.
ExtractFilePath in
Delphi-Quellcode:
liefert den Pfad mit einem Backslash. Immer. Somit sollte dem kein Backslash folgen.
ExtractFilePath(ParamStr(0))
Ein Schrägstrich, bzw. Slash wie in
Delphi-Quellcode:
ist kein Backslash. Der sieht so aus: "\".
Leveldesign/Bunnymajs - Reload.mp3
Leerzeichen könne Windows verwirren, wie in
Delphi-Quellcode:
. Die Regel besagt, dass man in solchen Fällen den Pfad in Anführungszeichen "" setzten sollte.
\Bunnymajs - Reload.mp3
Teste das mal und sag ob es immer noch Probleme gibt. Ansonsten den Code so ändern:
Delphi-Quellcode:
Ist der Pfad nicht da, gibt es eine Fehlermeldung.
var
Path: String; begin Path := '"' + ExtractFilePath(ParamStr(0)) + 'Leveldesign\Bunnymajs - Reload.mp3"'; if not FileExists(Path) then raise Exception.Create('Unbekannter Pfad: ' + Path); sndPlaySound(PChar(Path), SND_ASYNC or SND_LOOP); end; |
AW: Musik in Delphi hinterlegen
![]() ![]() ![]() ![]() |
AW: Musik in Delphi hinterlegen
Der TMediaPlayer sollte es auch tun, man muss ja nicht mit Kanonen auf Spatzen schießen:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz