myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   [C++] MediaPlayer Song mit in exe? (https://mygully.com/showthread.php?t=1952596)

Schweinegott 08.12.09 16:46

[C++] MediaPlayer Song mit in exe?
 
Hey ich hätte da mal eine kleine Frage:
Ich habe ein kleines Programm geschrieben, in dem ich auch Sound integriert habe.. nun frage ich mich, ob es möglich ist, diese Datei mit in die exe zu compilieren, damit ich nicht jedesmal den Sound mitsenden müsste :confused:

urga 08.12.09 18:36

wieviele kb hat der song denn bzw. wie groß ist der?

gosha16 08.12.09 18:43

Wenn du PlaySound() verwendest kannst du die Sounddatei als Resource mit in deine Exe reinkompilieren. und von da aus direkt abspielen.

Schweinegott 08.12.09 19:13

~ 500 KB
Und "MediaPlayer1->PlaySound()" existiert angeblich nicht :(

urga 08.12.09 20:16

das mit der resource hört sich trotzdem gut an.

gosha16 08.12.09 22:58

achso du nutzt da irgendwelches Klassengefrickel... ich hab von C++ nicht ganz so viel Ahnung. Bin "C"ler.
Aber zeig mal den Code mit dem du das Soundfile abspielst.

Ansonsten:
Soundfile als Resource verwenden.
Nach dem Start des Programmes dieses Soundfile z.B. in den Temp Ordner schreiben
Und von da aus abspielen.

Schweinegott 09.12.09 05:10

Also ich benutze den TMediaPlayer.
Habe bei dessen eigenschaften unter FileName den Pfad der Datei aingegeben (C:\song.mp3). In OnCreate (der Form) habe ich dann diesen Code geschrieben:
MediaPlayer1->Open();
MediaPlayer1->Play();

Ich habe allerdings keine Ahnung, wie ich es als Resource verwenden soll.

gosha16 09.12.09 14:04

Resourcen erstellt man folgendermaßen:
Du legst eine neue Datei an res.rc

Dann schreibst du folgendes in die Datei rein:

Code:

1001 WAVE "sound.wav"
Wie du das mit deiner Klasse abspielst kann ich nicht sagen.

So könntest du das ganze aber per WinAPI abspielen:

Code:

PlaySound(MAKEINTRESOURCE(1001), GetModuleHandle(NULL), SND_RESOURCE);

Schweinegott 09.12.09 18:28

Danke es funktioniert soweit.. nur leider reagiert das Programm während es den Sound abspielt nich.. das kann ich so auch nicht lassn.

urga 09.12.09 18:35

stichwort threading ...
du musst den mediaplayer in einem seperaten thread laufen lassen.

gosha16 09.12.09 19:01

Zitat:

Zitat von urga (Beitrag 20227627)
stichwort threading ...
du musst den mediaplayer in einem seperaten thread laufen lassen.

Muss er nicht.

Code:

PlaySound(MAKEINTRESOURCE(1001), GetModuleHandle(NULL), SND_RESOURCE | SND_ASYNC);
Blockt nicht.

urga 09.12.09 19:33

ok. wusste ich nicht. aber wenn seine applikation einfriert, was mag es dann sein ?

gosha16 09.12.09 19:36

PlaySound() is ohne SND_ASYNC einfach nur ein BlockingCall, das is alles. Wenn der Sound Fertig abgespielt wurde gehts weiter.

Schweinegott 09.12.09 20:29

Jaaa ich danke euch! Jetzt geht's! :)
Falls das jetzt noch jemand mit einer mp3-Datei hinbekommen würde, küsse ich ihm die Füße :)
Ist aber nicht unbedingt notwendig :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:09 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.