![]() |
Delphi-Version: 5
musik abspielen
Hallo,
ich versuche in meinem Programm gerade Musik abspielen zu lassen. Dazu benutze ich diesen Code [DP]sndPlaySound(PChar('C:\Users\Anonym\Desktop\Delphi Project\Strings.wav'),SND_LOOP);[/DP] Dann kommen allerdings Fehler mit denen ich nichts anfangen kann und zwar: undefinierte Bezeichnung sndPlaySound undefinierte Bezeichnung SND_LOOP Wo liegt das Problem denn genau? Grüße |
AW: musik abspielen
uses mmsystem;
DELPHI statt DP für die Codeformaatierung |
AW: musik abspielen
Code:
Nur noch den richtigen Pfad anpassen.playsound(pchar('.\sounddatei.wav'),hinstance,snd_async); |
AW: musik abspielen
Zitat:
Der Compiler kennt an dieser Stelle diese Befehle/Konstanten nicht, bzw. diese wurden vorher nirgendwo deklariert und existieren demnach nicht. Wenn man hier nun die nötige Unit einbindet und somit dem Compiler vorher sagt, daß es das gibt (in dieser Unit sind diese Dinge ja deklariert), dann kann er sie finden und alles ist gut. Ansonsten: Verwende besser keine statischen absoluten Pfade, denn diese stimmen nur auf deinem aktuellen System/PC und nicht bei Anderen. Relative Pfade sind allerdings auch nicht sonderlich gut, da diese nicht vom Pfad der EXE ausgehn, sondern vom aktuellen Arbeitsverzeichnis. Dynamische absolute Pfade wären da besser. Wenn deine EXE also auch in C:\Users\Anonym\Desktop\Delphi Project\ liegt, dann wäre
Delphi-Quellcode:
oder
ExtractFilePath(ParamStr(0))
Delphi-Quellcode:
ganz passend,
ExtractFilePath(Application.ExeName)
also
Delphi-Quellcode:
, bzw.
sndPlaySound(PChar(ExtractFilePath(ParamStr(0)) + 'Strings.wav'), ...
Delphi-Quellcode:
MeinVerzeichnis := ExtractFilePath(ParamStr(0));
sndPlaySound(PChar(MeinVerzeichnis + 'Strings.wav'), ... |
AW: musik abspielen
Zitat:
Gruß |
AW: musik abspielen
Die Unit einfach hinten an die uses-Klausel mit einem Komma getrennt anhängen.
Delphi-Quellcode:
[edit] Wenn Du allerdings im interface-Teil noch nicht auf Klassen oder Routinen der einzubindenden Unit zugreifst, kannst Du auch im implementation-Teil eine uses-Klausel einfügen bzw. wie beschrieben erweitern. [/edit]
unit UnitWuppdi;
interface uses Windows, SysUtils, Messages, Classes, {weitere Units}, DeineUnit; |
AW: musik abspielen
Vielen dank, es klappt jetzt
aber die Musik Datei wird nicht wiederholt obwohl ich am Ende ein SND_LOOP stehen habe. Und ich würde gern das SND_LOOP mit dem SND_ASYNC kombinieren ist das überhaupt Möglich? |
AW: musik abspielen
Jepp, ist es, einfach "verodern": SND_ASYNC or SND_LOOP.
|
AW: musik abspielen
super läuft jetzt alles wie ich es wollte :)
PS: eine letzte Frage noch warum heißt es SND_ASYNC or SND_LOOP und nicht SND_ASYNC and SND_LOOP? Also nur vom Prinzip her jetzt or heißt doch das eine oder das andere aber ich ja beides sozusagen ein und haben Gruß |
AW: musik abspielen
Das habe ich vor längerer Zeit einmal in einem
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:40 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 by Thomas Breitkreuz