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


Anmelden zum Antworten