Midi Dateien in Programm einbinden
-
hi,
ich suche eine lösungsmethode wie ich kleine midisongs in mein Programm einbinden kann.. kennt man ja mehr oder weniger von Keygeneratoren.
danke für eure hilfe
-
Hallo,
sndPlaySoundA("MeineMid.mid", SND_ASYNC); // sollte da reichen :: ansonsten mit der TMediaPlayer-Komponente
LG, Micha
-
hi danke, werd da smal nachher ausprobieren
abe rnocham ne frage:
wird das mit in die exe datei eingebunden pder muss ich die midi mit anhängen wenn ich das weitergebe?
PS:
Die Funktion in die OnCreate Form packen?
-
hmm klappt leider iergdnwie nicht so ganz
muss ich vllt nocha uf was bestimmtes achten? bin leider anfänger :<
-
Crisis10 schrieb:
hmm klappt leider iergdnwie nicht so ganz
...
Tja, mein Programm hier klappt auch nicht so ganz, kannst du mir sagen, wo das dran liegt ?
Sorry, aber das ist keine Fehlerbeschreibung. Was genau klappt nicht? Zeig doch mal etwas Quellcode, dann können wir dir sicherlich weiterhelfen.
-
hi sry.. a,lso hab fiolegenden code:
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; UINT SND_ASYNC; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { sndPlaySoundA("song.mid", SND_ASYNC); } //---------------------------------------------------------------------------
und im header ist:
//--------------------------------------------------------------------------- #ifndef Unit1H #define Unit1H //--------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> //--------------------------------------------------------------------------- class TForm1 : public TForm { __published: // IDE-managed Components void __fastcall FormCreate(TObject *Sender); private: // User declarations public: // User declarations __fastcall TForm1(TComponent* Owner); BOOL sndPlaySoundA(LPCSTR lpszSound,UINT fuSound); }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------- #endif
Die midi datei song.mid ist im Quelltextverzeichnis
[cpp]
-
Bei Borland ist aber das Quelltextverzeichnis nicht das Verzeichnis in das die exe reinkommt. Die exe ist entweder in Debug_Build oder in Release_Build. Da muss auch deine Datei hin.
greetz KN4CK3R
-
ok habs ins release verzeichnis gepackt .. nur leider kommt beim komplilieren eine fehlermeldung
[ILINK32 Fehler] Error: Nicht aufl÷sbares externes 'TForm1::sndPlaySoundA(const char *, unsigned int)' referenziert von C:\Programm\RELEASE\UNIT1.OBJ
-
Nimm die Deklaration von sndPlaySoundA aus deiner Klasse. Das ist eine WinAPI-Funktion. Die musst du weder deklarieren noch definieren, nur verwenden.
Hier eine Erklärung dazu
http://msdn.microsoft.com/en-us/library/ms713269.aspx
Da steht auch, dass man statt dessen PlaySound verwenden soll da sndPlaySound nur noch aus Kompatibilitätsgründen drin ist. Weiterhin steht da auch das du die Winmm.lib dafür brauchst.
-
hmm jow hab ich jetz ma umgeändert .. das programm starte aber es ertönt nur ein *BLOBB* stat dem midi file.. wieso denn das?
#include <vcl.h> #pragma hdrstop #include "Unit1.h" #include <mmsystem.h> //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { sndPlaySound("song.mid ",SND_ASYNC | SND_FILENAME); } //---------------------------------------------------------------------------
-
1. Muss nicht sein, aber ev. solltest du die Midi-Datei erst bei OnFormShow abspielen.
2. Der Pfad zur Datei ist korrekt ?
3. Audioeigenschaften deines PC zum Abspielen von Midis korrekt?mgf
Peter
-
1. hat leider auch nchts gebracht
2. jup der song is ja im root von der kompilierrten exe
3. wie meinst du das? also midi dateien mit winamp Zb ist problemlos möglich
-
Hi,
geh mal in die Suchfunktion des Forums, Stichwort : Midi-Töne abspielen
da is was von WebFritzi.sndPlaySound / PlaySound dürften nur für Wave-Dateien gelten.
mfg
Peter
-
@Crisis10,
du hast in den alten Thread gepostet. Allerdings ist dort der Code von WebFritzi
drauf, ich meinte auch keinen Link.Probier mal den Schnipsel aus.
mfg
Peter