.mp3 abspielen



  • #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.



  • skeptar_ schrieb:

    Weil die Headerdatei sich nicht in dem Projekt Ordner befindet.

    Ja entweder:

    #include "bla/bla/api/lowlevel/inc/fmod.hpp"

    oder (viel!) besser:

    #include "fmod.hpp"

    und unter den projektoptionen bei den compiler search directories "bla/bla/api/lowlevel/inc" hinzufügen. (beim compiler tab glaube ich).
    Dann sucht er auch da nach Headerdateien (und Sourcedateien), die du inkludierst.



  • Oh man so viele Fragen für ein so recht simples Thema...
    Es klappt nicht. Also ich erkläre was ich schon habe.

    Ich habe nach deiner Anleitung (auf dem Bild), die libfmod.a eingebunden.
    Also bei "Project build options -> Linker settings -> add -> dann die Datei ausgewählt und den relativen Pfad genommen -> danach auf add & ok"

    So das ist die erste. Nun sagtet ihr ich muss ihm den lib Ordner zum suchen geben habe ich so gemacht:

    "Project build options -> Search directories -> Reiter Compiler -> Add -> und die Datei ausgewählt und auch dort den relativen Pfad gewählt -> und anschließend auf ok".

    Und bei "Selected compiler" ganz oben habe ich "GNU GCC Compiler" 7

    Ach und an der linken Seite steht "Audio" und audio untergeordnet ist "Release".

    So also ich das alles gemacht habe, habe ich mir einen Beispiel Code aus dem Internet gesucht (von der FMOD Seite) und einfach mal getestet ob es klappt, aber es klappt nicht.

    Hier der Code:

    #include <stdio.h>
    #include "C:Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\lowlevel\inc\fmod.hpp"
    
    int main()
    {
        FMOD::System *system = NULL;
        FMOD::System_Create(&system);
    
        unsigned int version;
        system->getVersion(&version);
        printf("FMOD lib version %08x founded\n", version);
    
        system->init(512, FMOD_INIT_NORMAL, 0);
    
        system->release();
    
        return 0;
    }
    

    Ich hoffe ihr habt noch Bock mir zu helfen 😛

    EDIT

    Hier die Fehler:
    http://www.directupload.net/file/d/3737/8bzzqvvg_jpg.htm



  • Skeptar schrieb:

    So also ich das alles gemacht habe, habe ich mir einen Beispiel Code aus dem Internet gesucht (von der FMOD Seite) und einfach mal getestet ob es klappt, aber es klappt nicht.

    Fehlerbeschreibung ?



  • Hier die Fehler also ein Link

    http://www.directupload.net/file/d/3737/8bzzqvvg_jpg.htm

    Wo ich ein screen gemacht habe.



  • Das search directory hast du schonmal richtig eingestellt.
    mach nochmal ein bild von den linker optionen.

    ist die lib für debug und release gelinkt? oder nur für release und du baust für debug? (das ist meine vermutung hier)


Anmelden zum Antworten