mp3 abspielen



  • Hallo!

    Ich versuche, wenn ein Button geklickt eine mp3-datei abzuspielen.
    m_path ist vom Typ CString und enthält den Pfad mit doppelt '/'.
    Hier mein Code:

    void CMyPlayerView::OnButton1() 
    {
    
    	sCommand = "open \" " +m_path+ "\" alias Player shareable";  
            mciSendString(sCommand,NULL,NULL,NULL);
    
         // Die Wiedergabe starten: 
         sCommand = "play Player"; 
         mciSendString(sCommand,NULL,NULL,NULL);
    
    }
    

    Was mach ich falsch? Liegts vielleicht am Pfad?

    thx

    Hansi



  • In der FAQ gibt es SOurce dafür



  • Also ich hab den Code ja aus der FAQ. Hier das is der Inhalt der Variable m_path

    m_path = _T("C:\\Musik\\Titel.mp3");
    

    Also ich hab auch gelesen,dass da wohl fMod am besten is. Aber da steig ich nich so ganz durch. 😕
    Kann man da vielleicht irgendwo was zum Lernen von fmod runterladen? Oder kann mir jemand sagen was ich falsch mache?

    thx

    Hansi



  • Vielleicht solltest du uns erstmal dein Problem beschreiben.

    Findet er die mp3-Datei nicht?
    Gibts Fehlermeldungen beim Kompilieren?

    ...



  • Hast du das auch in deinem Code stehen?

    #pragma comment(lib, "winmm.lib") 
    #include "mmsystem.h"
    


  • hm, nimm Fmod, da gibts auch ne gute hilfe und Doku für. www.fmod.org

    Devil



  • Also ich klicke den Button an und es wird keine datei abgespielt.
    Auf www.fmod.org war ich auch schon. Aber ich weiß irgendwie trorgtdem nich wie das gehen soll...

    thx

    Gruß

    Hansi



  • Also mit dem Button stimmt alles. Wenn ich ne wav-datei via PlaySound abspiele wird sie auch abgespielt. Nur mit der mp3-datei lappts nich. Weiß denn keiner was ich falsch mache?
    Wo habt ihr eigentlich alle das Programmieren mit fmod gelernt?

    thx

    Grüße

    Hansi



  • An deiner Stelle würde ich die Datei mit Hilfe von MCI abspielen und das MCI-Fenster verbergen.

    Beispiel:

    Dazu musst du zunächst folgendes tun: Öffne das Menü PROJEKT, den Untereintrag EINSTELLUNGEN und blättere auf LINKER. Schreibe in die Zeile mit dem Titel OBJEKT-/ BIBLIOTHEKMODULE den Text VFW32.LIB.

    // Folgenden Code in Datei stdafx.h schreiben
    #include <vfw.h>
    
    // Media-Code (???Dlg.cpp)
    void ???::Play()
    {
     CString mp3FileName = ...;
     CRect rRect;
     CWnd wnd;
     HWND hMedia;
    
     // Media-Fenster erzeugen
     hMedia = MCIWndCreate(NULL, AfxGetInstanceHandle(), MCIWNDF_SHOWALL | MCIWNDF_NORERRORDLG, NULL);
    
     if (hMedia)
     {
      char szFileName[256];
      sprintf(szFileName, "%s", mp3FileName);
      // Datei öffnen
      MCIWndOpen(hMedia, szFileName, 0);
      // Fenster verstecken
      wnd.Attach(hMedia);
      wnd.ShowWindow(SW_HIDE);  // Versuch's mal ohne das...
      wnd.Detach();
      // Datei abspielen
      MCIWndPlay(hMedia);
     }
    }
    

    PS: Mit Hilfe einiger Änderung dieses Codes kannst du das Media-Fenster beliebig verändern [Breite/ Höhe/ Pos => wnd.SetWindowPos(NULL, ...)]. Hier hast du sogar einen TrackBar



  • Kann mir vielleicht jemand den link schicken zu der hilfe auf www.fmod.org?
    weil ich find da nicks auf der page.

    thx

    Hansi



  • @hab_keinen

    MCIWndCreate(NULL, AfxGetInstanceHandle(), MCIWNDF_SHOWALL | MCIWNDF_NORERRORDLG, NULL);
    

    soll heißen ->

    MCIWndCreate(NULL, AfxGetInstanceHandle(), MCIWNDF_SHOWALL | MCIWNDF_NOERRORDLG , NULL);
    

    Ansonsten einwandfrei 😉
    BYE, Sigi

    PS:
    Ich bind meine lib´s über "Menü: Project - add to Project - files" ein. ist nicht so umständlich (find ich). Der Eintrag in die stdafx.h ist trotzdem notwendig



  • Schau hier -> http://www.fmod.de/

    In der Mitte findest du 2 Links (Documentation, Tutorials) oder auch zum runterladen

    TSCHAU, Sigi

    Links:
    http://www.fmod.org/docs
    http://www.fmod.org/docs/Tutorials



  • Vielen Dank! Also ich hab den Code nich in die stdafx.h reingeschrieben sondern in die View Klasse bei der "button-funktion" einfach eingefügt hat auch geklappt. Das mit dem Parameter ist mir auch aufgefallen, aber ansonsten funzt alles. Könnte man eigentlich in die FAQ packen, aber nur wenn die Admins es für nötig halten klappt nämlich wirklich!

    Nochmal Danke an alle!

    Gruß

    Hansi



  • Achso kann ma irgendwie die Laustärke regeln bei der Mci?

    thx nochmal

    hansi



  • Also ich hab die Funktionen in der MSDN gefunden:
    mit[cpp]
    Lautstärke=MCIWndGetVolume(hMedia); //Lautstärke abfragen
    MCIWndSetVolume(hMedia,gewünschte_Lautstärke); //Laustärke ändern

    Aber weiß vielleicht jemand wie man z.B. via Slider den Sound um 2 Sekunden "vorspulen" kann? Weil da find ich in der MSDN irgendwie nicks.

    thx

    Hansi


Anmelden zum Antworten