XM Hintergrundmusik
-
Hallo, ich habe Folgendes Problem:
ich will ein kleines Programm schreiben, bei dem xm musik
im Hintergrund läuft, die Musik soll sich immer wiederholen
und im Programm integriert sein.Ich habe schon einige befehle probiert z.b.:
#include <mmsystem.h>
#include <ufmod.h> // damit der Compiler weiß das xm musik ist
//---------------
MediaPlayer1->FileName = "E:\\test.xm";
MediaPlayer1->Open();
MediaPlayer1->Play();
//--------
mit mp3 dateien funktioniert es, mit xm nicht!Als nächstes habe ich die xm datei als resource datei (*.res)
gespeichert:(RES_SOUND XM "res\\test.xm"), und zum abspielen hab ich den Befehl benutzt:
PlaySound("RES_SOUND", HANDLE(HInstance), SND_RESOURCE);
aber nichts davon hat geklappt
! Ich hoffe Ihr könnt mir weiter helfen!
Gruß Gabba
-
Hallo
Zunächst einmal gehört das höchstwahrscheinlich ins Builder-Forum. Es wird dich also bald ein Mod verschieben.
Nein es reicht nicht einfach eine externe Header-Datei einzubinden damit ein unbekanntes Soundformat bekannt ist.
Sondern hinter MediaPlayer steckt der Windows-Decoder. Wenn also das Programm Media Player XM abspielen kann dann kann es auch die Komponente TMediaPlayer. Ansonsten must du eher den Codec für das XM-Format in Windows installieren as irgendwelche Header-Dateien im Builder-Projekt einbinden.Das Einbinden der Datei als Ressource ist davon unabhängig ein anders Thema.
bis bald
akari
-
Hallo.
Zunächst einmal: Dies ist das falsche Forum. Dinge wie mmsystem.h und PlaySound lassen mich spontan auf WinAPI schließen, da wäre das Thema angemessener. Hier gehts nur um Standard-C++.
Woher hast du ufmod.h und was genau ist das?
Da es mit MP3s funktioniert, aber mit XMs nicht, gehe ich einfach mal davon aus, dass der Mediaplayer kein XM beherrscht.Probier doch mal www.fmod.org aus, damit kannst du relativ problemlos XMs abspielen.
gruß
Edith sagt, dass akari schneller war
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum VCL (C++ Builder) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Danke für die antworten! ufmod habe ich von
http://www.un4seen.com/Bin von ausgegangen, dass der Compiler weiß was ein
XM Datei ist, dachte der ufmod wäre dafür da um den
Compiler das begreiflich zu machen.Tut mir leid das es das falsche Forum ist!
-
hol dir mal lieber die hier -> http://ufmod.sourceforge.net/
#include "ufmod.h"
irgendwo, wo's grad gebraucht wird dann
uFMOD_PlaySong(xmpath.c_str(),0,XM_FILE);
wobei in xmpath der absolute pfad der xm-datei ist
und nicht zu vergessen die ufmod.lib dem projekt hinzufügen, damit die mit compiliert wird.
in der ufmod.h steht auch drinn, wie Du die funktionen benutzt mit play, pause, etc.
für den pfad in der die nachher kompilierte exe liegt gibts ne nette funktion
String GetAppPath(void) { const int LEN = 1000; char directory[LEN]; String ret=""; int SlashPos; GetModuleFileName(NULL,directory,LEN); for (int x=strlen(directory); x>=0; x--) { if (directory[x]=='\\') { SlashPos=x; break; } } for (int x=0; x<SlashPos; x++) { ret += directory[x]; } return(ret); }
um dann den kompletten xmpath zu haben kann man einfach eine variable wiefolgt definieren
String xmpath=GetAppPath()+"\\music.xm";
Da Du aber den kram, was natürlich auch eleganter ist, aus ner resource lädst kannst du einfach aus dem XM_FILE ein XM_RESSOURCE machen und anstelle vom xmpath.c_string den namen der ressource nehmen. Ich habs persönlich nicht hin bekommen, aber das kann auch an mir liegen
laut beschreibung müsste es aus der ressource so gehen wie ich das grad beschrieben hab