fmod-Problem



  • Ich möchte mit fmod zwei mp3-Dateien über eine Soundkarte gleichzeitig abspielen und jede Datei unabhängig von der anderen in der Laustärke hoch und runterblenden können.
    So erstelle ich den ersten fmod-Stream:

    FSOUND_Init(44100, 32, 0);
    FSOUND_STREAM *Stream = FSOUND_Stream_Open (p->Filename.c_str(),0,0,0);
    p->Channelhandle = FSOUND_Stream_Play(FSOUND_FREE, Stream);
    

    Wenn ich jetzt in einer anderen Procedure während der erste Stream abgespielt wird, versuche einen zweiten Stream auf ähnliche Weise zu starten, also mit Init, Stream Open und Stream Play erhalte ich über FSOUND_FREE immer das gleiche Channelhandle das auch der erste Stream hat, so das sich Stream 1 und 2 in die Quere kommen. Kann mir jemand sagen wie ich über eine Soundkarte zwei Soundfiles gleichzeitig und unabhängig voneinander abspielen kann?

    Danke & LG
    Seddto 🙂



  • Versuchsmal so:

    Für File 1:

    FSOUND_Init(44100, 32, 0);
    FSOUND_STREAM *Stream = FSOUND_Stream_Open (p->Filename.c_str(),0,0,0);
    p->Channelhandle = FSOUND_Stream_Play(FSOUND_FREE, Stream);
    

    Für File 2:

    FSOUND_Init(44100, 32, 0);
    FSOUND_STREAM *StreamSec = FSOUND_Stream_Open (pSec->Filename.c_str(),0,0,0);
    pSec->Channelhandle = FSOUND_Stream_Play(FSOUND_FREE, StreamSec);
    


  • wollte diesen thread wieder verwenden da meine frage zum thema hier passt.

    meine frage: Was mach ich falsch oder wieso geht das nicht? und wie bekomm ich hin das es geht?

    es kommt immer ein fehler:

    [C++ Fehler] Unit1.cpp(24): E2034 Konvertierung von 'AnsiString' nach 'const char *' nicht möglich

    es liegt an diesem code:

    FSOUND_Init(44100, 32, 0);
      FSOUND_STREAM *stream = FSOUND_Stream_Open(Dateipfad, 0, 0, 0);
      FSOUND_Stream_Play(FSOUND_FREE, stream);
    

    Die Variable "dateipfad" ist in string. den dateipfad bekomme ich hierdurch:

    OpenDialog1->InitialDir;
      if (OpenDialog1->Execute())
       {
         Dateipfad = OpenDialog1->FileName;
       }
    

    wenn dateipfad in char mach genau das selbe und const char ...dann ist es ja keine variable mehr...
    bitte um hilfe 🙂



  • Weil AnsiString nunmal kein Null Termiierter Const String is 😉

    Versuchs mal so:

    FSOUND_STREAM *stream = FSOUND_Stream_Open(Dateipfad.c_str(), 0, 0, 0)
    

    statt dem . evtl -> jeh nachdem wie du die Variable deklariert hast.



  • danke schön


Anmelden zum Antworten