mp3 abspielen mit einem C++ Programm
-
Hmm, das Programm will nicht so wie ich will,
und zwar geht es darum, automatisch das Verzeichnis zu finden, dachte dass es mit %username% gehen würde..
Habe folgende Zeilen eingefügt:
char username[256] = {0}; unsigned long laenge = sizeof(username); GetUserName(username, &laenge);
Diese Zeile
cout << "\nUsername: " << username;
gibt mir auch korrekt den Usernamen an.
Wenn ich jetzt aber schreibe
ShellExecute(NULL,"open","C:\\Dokumente und Einstellungen\\%username%\\Desktop\\Mucke\\JOIN ME.mp3",NULL,NULL,SW_SHOWNORMAL);
wird der Quelltext zwar kompiliert; jedoch wird die mp3 nicht abgespielt.
Der Pfad ist korrekt, nur scheint das mit dem %username% nicht klappen.Wie bekomme ich es hin, dass die mp3 auf allen Rechnern abgespielt wird (vorausgesetzt natürlich, dass die mp3 im Ordner Mucke aufm Desktop liegt)?
-
Das %username% wird nicht einfach, ohne noch etwas zu tun, durch den wirklichen aktuellen Benutzernamen ersetzt. Es gibt dafür eine spezielle Funktion:
char path[MAX_PATH + 1]; // ersetzt in % eingefasste Umgebungsvariablen ::ExpandEnvironmentStrings("C:\\Dokumente und Einstellungen\\%username%\\Desktop\\Mucke\\JOIN ME.mp3", path, MAX_PATH + 1); ::ShellExecute(NULL, "open", path, NULL ,NULL, SW_SHOWNORMAL);
Aber das war jetzt kein Problem mehr, das in dieses Forum gehört (WinAPI-Funktionen). Prüfe aber zuerst, ob die mp3-Datei wirklich in diesem Pfad liegt...;)
MfG,
Probe-Nutzer
-
Hey Probe-Nutzer,
vielen Dank für deine Mühen, jetzt ist es PERFEKT
Ja, werde in Zukunft die Fragen in den richtigen Unterforen stellen
Vielen Dank noch mal
Einen schönen Tag noch an die Community
-
$h4rk schrieb:
... hauptsache die mp3 lässt sich auf jedem Rechner abspielen..)
Bist du sicher, dass dieser Code auch auf älteren Betriebssystemen wie ME den richtigen Effekt hat.
@Alle, die die Portabilität aussen vor lassen wollen:
Notfalls kann mans ja so lösen;#ifdef linux system(...) #else ShellExecute(...) #endif
Außerdem kannst du mit externen Playern wie VLC einfacher die Controls (Play, Stop usw.) anzeigen, wenn du sie brauchst.
Mit Lame könnte es theorteisch patentrechtliche Probleme Begen (MP3 -> Fraunhofern). Wenn du als Hintergrundmusik etwas abspielen möchtest, kansnt du genauso OGG nehmen, das ist meines Wissens komplett frei.
Sucht doh auch einfach mal auf Sourceforge nach "C++ MP3 Player". Bestimmt finden sich da interessante Sachen.mfg, Hans