.mp3 abspielen



  • Ich würde gerne wissen wie ich eine .mp3 Datei in der Konsole abspielen könnte. 😃
    Natürlich habe ich schon selber gesucht und bin auf das Ergebnis gestoßen

    PlaySound("Track01.mp3", 0, SND_FILENAME);
    

    Ich habe #include <windows> auch drinne bekomme aber allerdings immer eine Fehlermeldung:

    undefined reference to PlaySoundA@12



  • Zeig doch mal die MSDN-Seite, die PlaySound dokumentiert.



  • Du musst auch schon die Bibliothek mitlinken ...



  • volkard schrieb:

    Zeig doch mal die MSDN-Seite, die PlaySound dokumentiert.

    http://msdn.microsoft.com/en-us/library/windows/desktop/dd743680(v=vs.85).aspx
    Ich habe mir nun die Seite etwas genauer angeschaut... aber mein Ergebnis ist nicht besser.

    PlaySound(TEXT("recycle.wav"), NULL, SND_FILENAME);
    

    Ist das besser? Weil darüber steht das, dass Beispiel eine Sounddatei abspielt.

    Belli schrieb:

    Du musst auch schon die Bibliothek mitlinken ...

    Was ist damit gemeint? So etwas wie #include ...?



  • Ich glaube du musst (zB in deiner IDE) die Bibliothek angeben. Oder als zusätzlichen Parameter dem Compiler mitteilen.



  • #pragma comment(lib, "Winmm.lib")
    


  • -gelöscht-

    So nun habe ich weiter gesucht ca. 40min und bin auf die FMOD Bibliothek gestoßen. Ich habe mir sie gedownloaded und nun muss ich sie ja auch verwenden können.
    Nur mein Problem was muss ich nun wo und wie einbinden oder einfügen?
    In dem Ordner api sind 3 Unterordner welchen muss ich nehmen??
    In jeden dieser Ordner ist ein "inc" + "lib" - ich bin verzweifelt.

    Ich hoffe ihr könnt mir dabei helfen. Ich weiß das hattet ihr wahrscheinlich schon x male, also hoffe ich das ihr es mir noch einmal erklären könnt.



  • EDIT: Ich nehme gerade an, dass du auf Windows programmierst.

    Schau in deine fmod installation und da findest du die header Dateien und die library dateien.

    bsp: "?/FMOD SoundSystem/FMOD Programmers API Windows/api"

    inc <- hier die includes
    lib <- das muss gelinkt werden

    //----------------------------------------------------------------------
    Die libs sind so benannt:
    fmodex_vc.lib für visual studio mit dem microsoft compiler
    fmodex_bc.lib für den C++ Builder
    libfmodex.a für gcc, MinGW
    fmodex_lcc.lib ... kenne ich nicht ehrlich gesagt.
    //----------------------------------------------------------------------

    die mit dem L sind fürs debug build.

    //----------------------------------------------------------------------

    Wie linken?
    Das kommt auf die Entwicklungsumgebung an. Ich glaube nicht, dass du von der Kommandozeile baust.

    Visual Studio:

    #pragma comment(lib, "fmodex_vc.lib")
    

    Das reicht aber noch nicht, denn er weiß nicht, wo er fmodex_vc.lib findet.
    dazu in die Projektoptionen gehen und bei den Linkeroptionen zu den "Additional Library Directories" deine fmod api/lib Ordner hinzufügen.
    **
    Code Blocks mit MinGW**
    Project Build Options -> Linker Settings -> Add Button klicken und "libfmodex.a" suchen und hinzufügen.

    Bei anderen IDEs ähnlich. Für detailierte infos dazu einfach mal googlen.

    //----------------------------------------------------------------------

    Bei den Includes würde ich auch so vorgehen, dass du den fmod api/inc Ordner in die Projektoptionen bei den Compiler Search Diretories hinzufügst und dann nur noch #include "fmod.hpp" schreibst anstatt den kompletten Pfad. So kannst du den Code weiterverwenden und musst den Installationspfad nicht immer wieder ändern.

    //----------------------------------------------------------------------

    Die .dlls kannst du einfach zu deiner fertigen exe kopieren.

    Es bleibt noch zu sagen, dass du die C++ API nicht immer nutzen kannst. der C++ Builder zum Beispiel kommt nur mit der C API klar. heißt "fmod.h"

    EDIT: Gibt es eigentlich einen Artikel übers linken von Bibliotheken? Als ich damals angefangen hatte, habe ich damit auch große Probleme gehabt und es nicht verstanden. Teilweise hatte ich nur Linux anleitungen gefunden, die unbrauchbar waren.



  • Skeptar schrieb:

    So nun habe ich weiter gesucht ca. 40min und bin auf die FMOD Bibliothek gestoßen. Ich habe mir sie gedownloaded und nun muss ich sie ja auch verwenden können.

    fmod lebt nur davon, daß Nubes sie unbd keinen anderen Weg finden.
    Das geht aber mit Bordmitteln auch.



  • Tim06TR schrieb:

    bsp: "?/FMOD SoundSystem/FMOD Programmers API Windows/api"

    inc <- hier die includes
    lib <- das muss gelinkt werden

    Wenn ich mich dort befinde sind dort drei Ordner zur Auswahl.
    1x fsbank
    1x lowlevel
    1x studio

    Und in jedem der Ordner befindet sich ein inc und ein lib Ordner.
    Und ja ich programmiere auf Windows und ich benutze Code::Blocks (also gcc)

    volkard schrieb:

    Skeptar schrieb:

    So nun habe ich weiter gesucht ca. 40min und bin auf die FMOD Bibliothek gestoßen. Ich habe mir sie gedownloaded und nun muss ich sie ja auch verwenden können.

    fmod lebt nur davon, daß Nubes sie unbd keinen anderen Weg finden.
    Das geht aber mit Bordmitteln auch.

    Wie meinst du das? Ist FMOD keine gute Wahl? Oder ist das für den Anfang erst mal okay?



  • skeptar_ schrieb:

    fmod lebt nur davon, daß Nubes sie unbd keinen anderen Weg finden.
    Das geht aber mit Bordmitteln auch.

    Wie meinst du das? Ist FMOD keine gute Wahl? Oder ist das für den Anfang erst mal okay?[/quote]
    fmod kannste meiner Meinung nach erst brauchen, wenn Du ein Spiel proggerst, und extrem spaßige Soundeffekte haben willst, die von der Spielerbewegung oder dem Wetter oder so anhängen sollen.
    Mit google("play mp3 c++") hab ich doch sofort massenweise Treffer.
    Das mit dem #pragma comment(lib mußte irgendwie hinkriegen. Oder Compilerschalter, wenn gcc benutzt wird.



  • Sicherlich, aber das Problem ist, ich kenne mich damit nicht aus. Ich lese viel FMOD aber auch viel mit diesem

    #pragma comment
    

    aber auch verschiedene Bibliotheken. Also finde ich es relativ schwer mir etwas raus zu suchen 😕



  • skeptar_ schrieb:

    Tim06TR schrieb:

    bsp: "?/FMOD SoundSystem/FMOD Programmers API Windows/api"

    inc <- hier die includes
    lib <- das muss gelinkt werden

    Wenn ich mich dort befinde sind dort drei Ordner zur Auswahl.
    1x fsbank
    1x lowlevel
    1x studio

    Ich glaube ich bin von der alten FMOD installation ausgegangen, die neue habe ich noch nicht verwendet. Das sieht so aus, als wären die einzelnen Teile stärker aufgeteilt.

    Ich behaupte du musst in den Ordner "lowlevel". Dann weiter wie bereits gesagt.
    Fürs linken, hier nochmal ein Biespiel Bild:
    http://i.stack.imgur.com/O3Moc.png



  • Ich möchte nicht nerven habe aber nur die zu auswahl...

    http://www.directupload.net/file/d/3736/x4eluly3_jpg.htm



  • libfmod.a für release
    libfmodL.a für debug



  • Tim06TR schrieb:

    libfmod.a für release
    libfmodL.a für debug

    Okay ich muss nochmal nerven...
    Ich habe nun die libfmod.a nach deiner Anleitung bei "Linker" hinzugefügt. Aber brauche ich nicht noch eine header Datei?
    Und was muss ich zum schluss includen?
    😕 😕 😕 😕 😕



  • skepar_ schrieb:

    Ich habe nun die libfmod.a nach deiner Anleitung bei "Linker" hinzugefügt. Aber brauche ich nicht noch eine header Datei?

    Jupp, die libfmod.a liefert die Definitionen, die Headerdatei die Deklarationen.

    Und was muss ich zum schluss includen?

    Na die Headerdatei.



  • Nathan schrieb:

    Na die Headerdatei.

    Aber ich muss die Headerdatei nicht auch verlinken?
    Weil die Headerdatei sich nicht in dem Projekt Ordner befindet.


  • Mod

    Aber ich muss die Headerdatei nicht auch verlinken?

    Das ist unmöglich. Header-Dateien kann man nur einbinden.



  • Arcoth schrieb:

    Aber ich muss die Headerdatei nicht auch verlinken?

    Das ist unmöglich. Header-Dateien kann man nur einbinden.

    "Einbinden" lässt sich (laut leo.org) dummerweise auch mit "to link" übersetzen. Vielleicht wäre "einbetten" oder doch das denglische "inkluden" verständlicher.


Anmelden zum Antworten