MediaPlayer Datei mit rc öffnen
-
thx, habs geschafft
habs wie akari und Rostfrei[] gesagt haben gemacht.
entlich muss ich keine mp3 mehr bei einem game mitliefern

MFG
-
Hier noch mein Code zum Laden beliebiger Daten aus einer Ressource
//steht so oder so ähnlich in der rc-Datei MUSIK1 RCDATA "test.mp3" // Im Hauptprogramm um sich die Daten zu holen und in einer Datei zu speichern stringstream sstream; HRSRC rsrc = FindResource((int)HInstance, "MUSIK1",RT_RCDATA); if(rsrc) { DWORD Size = SizeofResource(HInstance , rsrc); HGLOBAL MemoryHandle = LoadResource(hdll,rsrc); if(MemoryHandle != NULL) { sstream << (char*)LockResource(MemoryHandle); ofstream file("test.mp3", ios::binary); file.write(sstream.str().c_str(), size); } } //jetzt nur noch die Datei laden und evtl. wieder löschen
-
Wenn du die Daten nicht auf Festplatte speichern willst, kannste auch FMOD verwenden. Das kann Dateien auch aus dem Speicher lesen.
-
Dein Code Funzt Nicht, erstellt zwar eine datei aber nur mit 33kb und die geht Nicht!!
-
Was steht denn in size? Ansonsten könnte man noch den stringstream rausschmeißen
if(MemoryHandle != NULL) { char* buffer = (char*)LockResource(MemoryHandle); ofstream file("test.mp3", ios::binary); file.write(buffer, size); }
-
Ich tippe eher drauf, dass DU nicht "funzt".
Aber ich denke auch, dass man auch die VCL benutzen sollte, wenn man sie schon zur Verfügung hat...
-
Du kannst ja noch den Code posten, damit beim nächsten Mal schon was fertiges im Forum steht.
Gruss
-
Das mit dem ResourceStream kannte ich noch nicht. Dann sieht der Code gleich viel übersichtlicher aus.
TResourceStream* rstream = new TResourceStream(HInstance, "MUSIK1","RT_RCDATA"); rstream->SaveToFile("test.mp3"); delete rstream;
-
Genau das meinte ich. Jetzt braucht "der Neue" auch nicht mehr zu meckern.
-
Wahrscheinlich wird auch das bei ihm nicht gehen
-
Man sollte die Erzeugung noch in einen try/catch Block einschließen, da eine Exception geworfen wird (EResNotFound) wenn irgendwas mit der Resource nicht stimmt.
-
und damit der Neue auch noch ein wenig Spass an der Sache hat, das ganze hier in Delphi:
var TempStream : TResourceStream; begin TempStream := TResourceStream.Create(hInstance, 'MUSIK1',RT_RCDATA); try TempStream.Position := 0; TempStream.SaveToFile('test.mp3'); finally TempStream.Free; end; end;
-
Leider kommt doch ein Fehler!
Der nämlich:
[C++ Error] Unit1.cpp(53): E2285 Could not find a match for 'TResourceStream::TResourceStream(void *,char *,char *)'
-
Uiuiui... Ist der kleine Neue zu dumm, um mal in die Hilfe zu schauen und sich zu fragen, wie das richtig geht, hmmm? Der arme...

-
Tja, habs ja gesagt. Und dann noch so eine klare Fehlermeldung mit Quellcode. Einfach toll
-
Das Problem gäbe es mit Delphi übrigens nicht... :p
-
Poste doch noch ein bisschen Delphi-Code. Ich bin richtig geil darauf...

-
Ihr seid aber heute auch richtig schön gehässig.

TResourceStream* rstream = new TResourceStream((int)HInstance, "MUSIK1","RT_RCDATA");
-
Hallo zusamme,
Gibt es keine andere Möglichkeit um resourcen (*.mp3) abzuspielen,
ohne die resource temporär zwischenzuspeichern?????
-
Lies doch einfach mal den ganzen Thread. Da steht eigentlich drin wie, warum und wieso.