Soundfiles abspielen
-
Na, dann solltet ihr euch vielleicht mal meinen Link anschauen *kopfschüttel*
-
Versuchts mal so:
PlaySound("C:\\Test\\deine.wav", SND_FILENAME | SND_ASYNC | SND_LOOP);
SND_LOOP bedeutet das der Sound immer wiederholt wird wenn er am Ende gelangt ist !
Weitere Parameter hier :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcesdkr/html/wcesdkrPlaySound.asp
Gruß
:: NoName ::
-
danke ::noname::
Ich habe das jetzt die ganze Zeit gespielt wird.
Aber wie krieg ich das hin, dass der Sound auch wieder aufhört (nach einmal abspielen)...?
-
Indem du SND_LOOP weglässt? Meine Güte
-
Aha. Sehr interessant. Werd ich mal ausprobieren...
Danke auf jeden Fall
-
und wie macht man das, dass die Musik z.B.: nach 10 Sekunden ausgeht?
-
Entweder Baust du dir ein Timer, den du nach PlaySound aktivierst und der dann nach 10 sek. stoppst... Oder du benutzt ein Thread und benutzt Sleeps :
UINT Play(LPVOID pParam) // Thread erstellen { PlaySound("C:\\...", SND_FILENAME | SND_ASYNC); Sleep(10000); // Nach 10 sek.. PlaySound(NULL, NULL); // Stoppt den Sound }
Den Thread starten kannst du mit AfxBeginThread() :
...//in irgendeiner Funktion AfxBeginThread(Play, GetSafeHwnd()); ...
Leider musst du ein Thread benutzen, da Sleeps dein Programm blockieren, d.h. das man dein Programm solange nicht benutzen kann wie der Sound spielt ...
Gruß
:: NoName ::
-
ok danke, das hat mir sehr viel weitergeholfen.
Und wie kann man das machen, dass der Benutzer seine Musik selber auswählt (z.B. mit dem Windows-Explorer), also dass man selber entscheiden darf, welche Musik man hören will.
supersass1
-
Möchtest du das von deinem Programm aus machen ? Also kann der Benutzer in deinem Programm auswählen welche Musik er hören möchte ?
-
ja, der Benutzer selbst soll das auswählen können.
supersass1
-
Ich habe auch eine Frage:
Möchtest du das richtig aus dem Explorer auswählen?
Wenn nicht dann könntest du Musik vorgeben (=> Kombinationsfeld wäre angebracht).
Tschau
-
Na wenn du eine Explorer Ansicht haben möchtest dann benutz das TreeCtrl Steuerelement oder du benutzt eine ganz normale Liste. Dann holst du den Pfad von dem Item/Sound auf das der User doppelt geklickt hat und speicherst es in eine Variable. Dann brauchst du nur noch PlaySound aufzurufen und die Variable im ersten Parameter einzufügen :
PlaySound(Variable, SND_....);
Sag mir mnal welche Steuerelemt du verwenden möchest ..
Gruß
:: NoName ::@[DKS]MCNight
Ein Kombinationsfeld wäre schlecht, da man nicht wissen kann wieviele Sounds der User hochlädt ! Am besten wäre ein ListCtrl...
-
also ich dachte an eine Schaltfläche. Wenn man darauf klickt, soll sich der Explorer öffnen, um dann die Musik auswählen zu können
supersass1
-
Also möchtest du doch den Explorer nehmen. Leider weiß ich nicht wie man dein Player als standard Player bei Windows machen kann...
Du könntest doch den User seine Lieder auswählen lassen und dann abspielen !
-
ich glaube wir verstehen uns nciht so ganz.
Ich möchte keinen Player machen, sondern der Benutzer soll wenn er das Programm öffnet und auf einen Button klickt, sich die Hintergrundmusik für das Programm selber aussuchen, und dies durch den Windows-Explorer.
supersass1
-
Also meinst du, dass das praktisch nur als Hintergrundmusik laufen soll, aber eine vollkommen eigene exe.datei ist.
-
Verstehe, aber warum möchtest du den Explorer öffnen ?
Nimm doch ein FileDialog :CFileDialog dlg(TRUE,"",NULL,OFN_HIDEREADONLY,"Wave (*.wav)|*.wav||"); if(dlg.DoModal() == TRUE) { AfxMessageBox(dlg.GetPathName()); // Pfad der gewählten Datei }
Gruß
:: NoName ::
-
ok, auch mit der Gefahr, dass ihr mich jetzt gleich umbringen werdet....
Ich will, dass wenn ich über ein bestimmtes Bild hovere, dass dann der Sound kommt...
Er führt den Sound komplett zu ende, und lässt während dessen nichts anderes zu... also steht mein Programm so zu sagen, während die wav läuft.void __fastcall TForm1::Label_MultiplayerMouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { Image1->Left = 395; Image1->Top = 80; PlaySound("menu_button_hover.wav",NULL,0);
vorallem stört mich, dass er erst den Sound abspielt und dann das Image verschiebt....
ok, dann dacht ich mir, suchst im Forum und bei google, was die Zahlen dahinter bedeuten... bin auch fündig geworden, leider ist es so, dass wenn ich es so mache:
PlaySound("menu_button_hover.wav",NULL,1);
dann fängt er jedesmal wenn ich die Mouse auf dem Image beweg von vorne an...
somit hab ich dann...PlaySound("menu_button_hover.wav",NULL,1 || SND_NOSTOP);
so getan... aber es funktioniert immer noch nich
Ich weiss, dass ist jetzt sehr ne dumbfrage, aber bitte habt verständnis, ich hab mich jetzt wirklich bemüht es selbst herauszufinden... aber in meiner BCB hlp, steht überhaupt nix von PlaySound()... und hier im Forum gesucht hab ich auch schon...
und ich bitte euch, bevor solche Kommentare wie "dumme Frage" usw kommen.... antwortet lieber garnicht...mit den nettesten Grüßen mck ^^
-
Lass einfach ein '|' weg, dann wirds gehen :
PlaySound("menu_button_hover.wav",NULL,1 | SND_NOSTOP);
Gruß
:: NoName ::
-
Vielen vielen Dank ^^
Es hat geklappt....