MP3`s Abspielen !?!?!
-
google mal nach "FMOD"...
-
int CMp3playerDlg::PlayMp3(CString sFileName) { CString sCommand; // Eine Datei öffnen und als Device-Alias "Player" setzen: // sCommand = "open \" " +sFileName+ "\" alias Player shareable waveaudio"; // sCommand = "open " +sFileName+ " alias Player type waveaudio"; sCommand = "open " +sFileName+ " alias Player shareable"; // Wenn es nicht klappt 0 zurück if (mciSendString(sCommand,NULL,NULL,NULL)!=0) { return 0; } // Das Zeitformat auf Millisekunden setzen: sCommand = "set Player time format milliseconds"; if (mciSendString(sCommand,NULL,NULL,NULL)!=0) { return 0; } // Die Wiedergabe starten: sCommand = "play Player"; if (mciSendString(sCommand,NULL,NULL,NULL)!=0) { return 0; } return 1; } int CMp3playerDlg::StopPlayer() { // Den Player stoppen if (mciSendString("stop Player", NULL, NULL, NULL)!=0)return 0; if (mciSendString("close Player", NULL, NULL, NULL)!=0)return 0; return 1; }
winmm.lib mitlinken
#include <mmsystem.h> einbinden.
Funzt nur wenn Windows von sich aus MP§ abspielen kann.
Steht aber alles glaube ich auch in der FAQ
-
und sieht es denn jetzt wie so ein selbst gemachter player aus ! oder muss ich da noch mehr machen ??? ich meine ich muss ja den start knopf coden und den stop knopf und zu guter letzt muss ich noch machen das ich da mp3`s einfügen kann am besten steht oben rechts am mp3 plyer "datei" und dann steht da "öffnen" !!!
-
Logisch musst du auch noch was selber machen. Mit dem Code von Unix-Tom hast du doch noch keinen vollständigen MP3 Player! Unix-Tom hat dir nur den Code zum abspielen von MP3 gepostet. Den Rest (Oberfläche, Buttons, Menü, Playlist usw.) musst du natürlich noch selbst hinzufügen.
mfg
-
tja wenn ich wüsste wie man das macht das ich mp3`s einfügen kann ! ich bin blutiger anfänger und kann noch nicht soooo viel !!! also der code von tom , damit kann man schonmal mp3`s abspielen !!!! wie man button macht und so weiss ich aber wie ist der code damit ich z.B. auf play/drücken kann oder mp3`s einfügen kann ??? ne playlist ist erstmal nicht so wichitg reich schon wenn mann eine mp3 abspielen kann !
-
Also, wenn du weißt, wie man Buttons macht, dann kannst du doch zumindest schonmal den PlayButton machen.
Button erstellen, und den Code von Unix-Tom für Play dahinterlegen. Musst natürlich auch einen Dateinamen mit übergeben. Zum Testen kannst ja erstmal einen fest angeben.
Beim öffnen machste dann sowas wie:
CFileDialog DlgOpen(FALSE,"mp3","MP3 Player",OFN_HIDEREADONLY,"Ini Files (*.mp3) | *.mp3||"); if (DlgOpen.DoModal() == IDOK) { CString stMp3FilePath = DlgOpen.GetPathName();
Dann hast du in strMp3FilePath den Dateinamen drin, und kannst den später deinem Play Ereignis geben.
mfg
-
cool danke !!! was mir jetz am hilfreichsten wäre wenn einer dieses mal coden würde und mir als ne zip datei sendet !!!! weil ich wirklich kein plan hab wo ich das alles hin schreiben muss ! *schäm*
-
Hmm...du sagst doch(erstes posting), dass du den Player in deinem Programm einfügen willst. D.h. du hast schonmal was programmiert?
Also, versuch doch lieber selbst deinen MP3 Player zu bauen. Mit den Infos, die hier stehen, dürfte das nicht allzu schwer sein.
Lies dir vielleicht mal die ersten Kapitel von VC++ in 21 Tagen durch.
Danach müsstest du deine Probleme selbst lösen können und hast auch was für die Zukunft gelernt. Warum immer die anderen arbeiten lassen?
-
cool werde ich mir durch lesen !!! danke !
-
Falls Du direct x haben tust, dann kannst auch das gleich benutzen.
geht ungefähr so://copyright by Volkard #include <windows.h> #include <control.h> #include <strmif.h> #include <uuids.h> #include <evcode.h> #include <errors.h> #pragma comment(lib,"strmiids") #pragma comment(lib,"quartz") void check(HRESULT hResult) { if(FAILED(hResult)) throw hResult; } class Mp3Player { private: IGraphBuilder* pigb; IMediaControl* pimc; IMediaEvent* pime; IMediaPosition* pimp; WCHAR* fileName; public: Mp3Player() :pigb(0) ,pimc(0) ,pime(0) ,pimp(0) { check(CoCreateInstance(CLSID_FilterGraph,NULL,CLSCTX_INPROC_SERVER,IID_IGraphBuilder,(void **)&pigb)); check(pigb->QueryInterface(IID_IMediaControl,(void **)&pimc)); check(pigb->QueryInterface(IID_IMediaEvent,(void **)&pime)); check(pigb->QueryInterface(IID_IMediaPosition,(void **)&pimp)); } ~Mp3Player() { if(pime) pime->Release(); if(pimc) pimc->Release(); if(pigb) pigb->Release(); if(pimp) pimp->Release(); } void PlayFile (WCHAR* wFile) { check(pigb->RenderFile(wFile, NULL)); check(pimc->Run()); } double getCurrentPos() { REFTIME curTime; check(pimp->get_CurrentPosition(&curTime)); return curTime; } double getDuration() { REFTIME maxTime; check(pimp->get_Duration(&maxTime)); return maxTime; } bool isRunning() { LONG completion; pime->WaitForCompletion(0,&completion); return completion!=EC_COMPLETE; } };
-
*lol* @ volkard...
Ich wollts auch gerade sagen, wie wärs wenn du erstmal mit was leichtem anfängst...
-
ähm, irgendwie geht der code bei mir nicht so ganz
Ich habe jetzt folgendes auf den Play button gelegt:void CMP3PLAYERDlg::OnPlay()
{
// Spielt die MP 3 ab mit FileName als DateiNamen
int CMP3PLAYERDlg::PlayMp3(CString stMp3FilePath)
{
CString sCommand;// Eine Datei öffnen und als Device-Alias "Player" setzen:
sCommand = "open " +sFileName+ " alias Player shareable";
// Wurde von unixtom geändert// Wenn es nicht klappt 0 zurück
if (mciSendString(sCommand,NULL,NULL,NULL)!=0) return 0;// Das Zeitformat auf Millisekunden setzen:
sCommand = "set Player time format milliseconds";
if (mciSendString(sCommand,NULL,NULL,NULL)!=0)return 0;// Die Wiedergabe starten:
sCommand = "play Player";
if (mciSendString(sCommand,NULL,NULL,NULL)!=0)return 0;return 1;
}Und bekomme folgende fehlermeldungen:
PlayMp3' : is not a member of 'CMP3PLAYERDlg
MP3PLAYERDlg.h(14) : see declaration of 'CMP3PLAYERDlg'
error C2601: 'PlayMp3' : local function definitions are illegaltjo, was hab ich falsch gemacht?
Danke im Voraus
-
*tztztztz*
Warum benutzt ihr nicht einfach Fmod ?
Ist so einfach, und freeware.
Selbst auf der XBox benutzen sie es.Devil
-
Original erstellt von devil81:
***tztztztz*
Warum benutzt ihr nicht einfach Fmod ?
Ist so einfach, und freeware.
**Weils gar nicht einfacher als direct x ist?
-
Was ist FMOD genau?
-
Jo habs mir jetzt runtergeladen, aber ich raff da nüscht.
Nur irgendein datei wirrwarr und keine ahnung wohin damit
Wer kann mir helfen?
-
Schau das Beispielprogramm stream.exe an! Mit C-Code, wie man mp3 damit abspielt.
-
Ausserdem ist die Hilfe die mitgegeben wird sehr gut.
Die Beispielcodes solltest du dir auf jedenfall mal ansehen,
lässt sich eigentlich alles einfach nach C++ in eine Klasse portieren.Devil
-
Die Anleitung raff ich ebenfalls nicht (bin kein englisch freak).
Ich will doch einfach nur n MP3 abspielen
warum geht das nicht? Der sagt immer das PlayMp3 nicht zu der Klasse gehört
-
Moin,
du musst in deiner Header Datei (vermutlich Mp3PlayerDlg.h)auch PlayMp3 als Methode deklarieren. Und dann nimmst du noch die PlayMp3 Methode aus der OnPlay raus.
So, geh jetzt frühstücken. Ich hoffe, ich hab kein mist erzählt..gähn