MediaPlayer Datei mit rc öffnen
-
Weil er ursprünglich direkt aus einer Ressource abspielen wollte und das kann der Mediaplayer nicht.
Mir ist aber auch nicht klar warum hier sndPlaySound anstelle von PlaySound genommen wird. PlaySound kommt nämlich mit Ressourcen klar.
-
Und wenn Du die mp3 Datei in Deine Exe miteinlinkst und dann mit der Mediaplayerkomponente und TResourceStream das ganze lädst?
Hier ist ein Beispiel in Delphi:
http://www.delphipraxis.net/topic54504.html/Edit
noch ein Beispiel mit Zwischenspeicherung
http://www.softgames.de/forum/frage1111.html
-
Liegt hier vielleicht ein grundsätzliches Verständnisproblem vor:
Genau wie GIf, JPG usw. kann man MP3 nicht abspielen, da dies alles Speicherformate sind. Grafiken werden nun mal nur als Bitmap dargestellt. Zwar kann ich diese in Resourcen packen, aber dann nur einfach darauf verweisen wird wohl nie was werden. Um ein in einer Resource liegendes JPG anzuzeigen, muss ich es erst da rausholen und in eine Bitmap verwandeln. Genauso ist es mit dem MP3s. Solange nicht das "native" Format (BMP oder WAV) drin ist, wird das mit direktem abspielen nix werden. Also muss die Funktion, welche auch immer, in der Lage sein die Resource vor der Benutzung in das native Format zu bringen
-
@Rostfrei[] Dies ist ein CV-PLUSPLUS Forum und hier ist KEIN Delphi ERWÜNSCHT!!

-
Der Neue schrieb:
@Rostfrei[] Dies ist ein CV-PLUSPLUS Forum und hier ist KEIN Delphi ERWÜNSCHT!!

Wenn Du ein Problem mit Delphi hast, dann ist es ganz allein Dein eigenes. Solange es aber jemanden helfen könnte, werde ich auch weiterhin Delphicode posten.
-
Es hilft aber keinen, weil wenn man c++ lernen will delphi wenig hilfrich sein wird!
Dann mach dir die Mühe, und übersetz den TEXT wenigstens in c++!!!
-
Alle Personen, die in diesem Thread gepostet haben, scheinen sehr wohl Ahnung von C++ zu haben; Und warum sollte ich mir die Mühe machen den Code zu übersetzen. Für jemanden der die Grundlagen von C++ beherrscht, sollte Delphi überhaupt kein Problem darstellen. Wohl aber für Dich :p
Aber das alles ist off topic und hier der falsche Platz!
-
Ich weiß sehr wohl, wie ich den Quellcode zu übersetzen habe!
Aber wie du gemerkt hast, verstehen die anderen Guys diesen Artikel nicht, und wissen nicht, wie man jetzt eine audiodatei (keine .wav) aus einer .dll datei starten kann!
-
wie man jetzt eine audiodatei (keine .wav) aus einer .dll datei starten kann!
Nein darum dreht es sich hier nicht. Es geht um eine Resource Datei nicht um eine DLL
-
eine dll ist eine resource datei!
nur halt in der EXE eingebunden!
-
Das ist kompletter Unsinn:
Eine *.rc Datei ist eine Resourcen Quelltextdatei, die durch den Resourcecompiler in eine *.res Datei compiliert wird. Die *.res kann in eine exe oder dll eingebunden werden. eine *.rc oder *.res hat also mir einer DLL nichts zu tun.
Umgekehrt kann eine DLL bestehen
- nur aus einer Resourcen-Datei
- nur aus Quellcode
- aus beidem
-
Lass ihn. Er machst sich selber lächerlich.
-
ok
-
KK!!
Aber könnt ihr mir sagen, wie ich jetzt diese scheiss wma datei abspielen kann (aus der .DLL oder .EXE??
-
oder .mp3
-
will mich da ja nicht einmischen, aber bei dem ganzen chaos steht nur zeug was keiner braucht zb. ärgern, ärgern, rechthaben wollen usw.
wenn ihr euch dann beruhigt habt, bitte eine antwort auf meine frage die ich vor eurer streiterei gestellt habe.
bitte, bitte
danke im voraus
mfg
-
Wie schon weiter oben gesagt versuche mal PlaySound statt sndPlaySound. Alternativ kann man natürlich auch erst die Daten aus der Ressource holen, temporär als Datei speichern und dann den Mediaplayer verwenden. So wie Rostfrei[] und akari es schon gesagt haben.
-
Aber wie soll ich diese sounddatei herausholen und woanders speichern??????
(NICHT DELPHI CODE)!
-
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