Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Musik in Delphi hinterlegen (https://www.delphipraxis.net/180390-musik-delphi-hinterlegen.html)

KeksRebellion 16. Mai 2014 18:25

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:
procedure TForm2.FormCreate(Sender: TObject);
begin

  sndPlaySound(PChar(ExtractFilePath(ParamStr(0)) + '/Leveldesign/Bunnymajs - Reload.mp3'), SND_ASYNC or SND_LOOP);
end;
Jedoch kommt beim Starten des Programms ein typischer Windows Fehlerton und das programm läuft einfach ohne musik ab.
Was kann ich hier machen?

Danke im Vorraus

Popov 16. Mai 2014 19:31

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:
ExtractFilePath(ParamStr(0))
liefert den Pfad mit einem Backslash. Immer. Somit sollte dem kein Backslash folgen.

Ein Schrägstrich, bzw. Slash wie in
Delphi-Quellcode:
Leveldesign/Bunnymajs - Reload.mp3
ist kein Backslash. Der sieht so aus: "\".

Leerzeichen könne Windows verwirren, wie in
Delphi-Quellcode:
\Bunnymajs - Reload.mp3
. Die Regel besagt, dass man in solchen Fällen den Pfad in Anführungszeichen "" setzten sollte.

Teste das mal und sag ob es immer noch Probleme gibt. Ansonsten den Code so ändern:

Delphi-Quellcode:
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;
Ist der Pfad nicht da, gibt es eine Fehlermeldung.

glotzer 16. Mai 2014 20:23

AW: Musik in Delphi hinterlegen
 
MSDN-Library durchsuchensndPlaySound spielt leider nur .wav ab. Wenn du mp3 oder ähnliches apsielen willst brauchst du etwas wie OpenAL oder die Hier im Forum suchenbass.dll (zweiteres sollte wesentlich einfacher für dich sein) (Eigenwerbung: hab da hier eine (hoffentlich) einfache Klassenkapselung von erstellt. Für dich am einfachsten zu verwenden sollte V0.6 sein, die ist zwar sehr eingeschränkt aber ansonsten wirds schnell aufwendiger)

DeddyH 17. Mai 2014 07:53

AW: Musik in Delphi hinterlegen
 
Der TMediaPlayer sollte es auch tun, man muss ja nicht mit Kanonen auf Spatzen schießen: Hier im Forum suchenMP3 abspielen


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz