MP3 abspielen (loop)



  • Ich spiele ein mp3 ab während mein Programm einige Bilder darstellt.
    Leider hab ich keine Ahnung wie und ob ich ein loop des MP3-Files
    realisieren kann.

    Wie kann ich mitbekommen ob die Datei zuende gespielt wurde, bzw.
    ein infinety oder sowas einbauen, damit sich das Lied wiederholt?

    CString datei="c:\\test.mp3";
     sCommand = "open " +datei+ " alias Player shareable"; 
     if (mciSendString(sCommand,NULL,NULL,NULL)!=0) return 0; 
    
     sCommand = "play Player"; 
     if (mciSendString(sCommand,NULL,NULL,NULL)!=0)return 0;
    


  • Schau mal in der Doku bei der MSDN, du kannst wesentlich mehr Befehle an die MCI senden, auch Angaben zur Wiederholung.
    Empfehlen würde ich aber, wegen der Kompatibilität, DirectShow zu verwenden, da die meißten MP3 Decoder als solchen Filter vorliegen, oder das freie FMOD zu verwenden.
    Bei letztem mußt du zu deinem Programm aber wieder eine DLL mitliefern, daher tendiere ich zu DirectShow, ist sehr einfach damit, mußt nur halt das DirectX SDK haben, oder für DevCpp dessen Package, oder für Borland das Angepasste.



  • BEsorg dir mal die Fmod Libary



  • Hab auch ne Frage nebenbei: Wie kann man laufende Mp3´s beenden, ich will das wenn man auf 'q' drückt das der Player beendet wird, aber das mit _kbhit() funktioniert nicht da man diese funktion ja in Schleifen verwendet, wie macht man das?

    if(_kbhit())
    {
         char zeichen = getch();
         if(zeichen == 'q')
         break;
    }
    
    mciSendString(open.c_str(), NULL, 0, NULL);
    mciSendString(play.c_str(), NULL, 0, NULL);
    mciSendString(close.c_str(), NULL, 0, NULL);
    

Anmelden zum Antworten