PlaySound(); Problem



  • Danke aber wenn ich es so schreibe dann kommt immer die Fehlermeldung:

    stray '/246' in program

    Wenn ich das | durch das Zeichen ersetze das so wie ein I ausseht,
    dann compliert er es zwar aber die .wav Datei wird nur abgespielt bis ich eine andere .wav Datei abspiele.
    Ich möchte aber eigentlich das die .wav Datei solange abgespielt wird bis ich es mit einem Befehl abbreche.

    Wie geht das und wie breche ich es sonst ab?



  • JoelW schrieb:

    Danke aber wenn ich es so schreibe dann kommt immer die Fehlermeldung:

    stray '/246' in program

    Wenn ich das | durch das Zeichen ersetze das so wie ein I ausseht,

    Das Zeichen, was wie ein I aussieht, nennt sich PIPE und dient als Bitoperator mit der Funktion OR. Siehe hierzu in einem Tutorial für Bitoperatoren nach 😉

    JoelW schrieb:

    dann compliert er es zwar aber die .wav Datei wird nur abgespielt bis ich eine andere .wav Datei abspiele.

    Richtig. Wenn du bei Start einer anderen Datei die erste nicht Beenden willst, so musst du "SND_LOOP | SND_ASYNC | SND_NOSTOP" schreiben. Bedenke, dass die 2. Datei aber NICHT nebenbei läuft.

    JoelW schrieb:

    Ich möchte aber eigentlich das die .wav Datei solange abgespielt wird bis ich es mit einem Befehl abbreche.

    Ich vermute, dass hast du schon. Hier muss als 1. Parameter der Funktion PlaySound NULL angegeben werden. Danach kannst du die 2. Sounddatei abspielen.

    Zusaetzlich empfehle ich noch die Doku, die eigentlich alles weitere enthalten sollte
    http://msdn.microsoft.com/en-us/library/aa909766.aspx



  • PROBLEMME ⚠
    1.Zum zweiten mal wenn ich ein | mache kommt die Fehlermeldung stray '/246' in program!
    2.Ich will aber das zwei .wav dateien gleichzeitig laufen! da gibt es doch sicher einen Befehl dafür.
    Bitte helft mir 😞



  • JoelW schrieb:

    1.Zum zweiten mal wenn ich ein | mache kommt die Fehlermeldung stray '/246' in program!

    Schmeiss den DevC++ in den Muell. Verwende, wie schon erwaehnt, Codeblocks oder Visual Studio. Die sind ebenfalls kostenlos und machen weniger Probleme. 😉

    JoelW schrieb:

    2.Ich will aber das zwei .wav dateien gleichzeitig laufen! da gibt es doch sicher einen Befehl dafür.
    Bitte helft mir

    Ich bin mir sicher, dass das in den vorherigen Post's nicht drin stand. So wirst
    du mit deinem Programm nie fertig, wenn du immer nur haeppchenweisse mit deinen Informationen rausrueckst :D.
    PlaySound ist dafuer glaube ich nicht geschaffen, da dies nur ueber einen Kanal laeuft.
    Schau mal hier:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-256383.html
    http://msdn.microsoft.com/en-us/library/dd757161(VS.85).aspx

    Wenn du umfangreichere Dinge mit Sounds machen willst, so hab ich bereits auf fmod hingewiessen.



  • Nein wenn es auch nur Irgendwie umgehbar ist dann bleibe ich bei meinem Compeiler!:D

    Dieses Beispiel funktioniert zwar aber könnte ich das auch in der Endlosschleife abspielen?
    Wenn ja wie?

    #include <conio.c>

    int main()
    {
    char data[100];
    sprintf(data,"open %s",test.mp3");
    mciSendString(data,NULL,0,NULL);
    sprintf(data,"play %s from 0","test.mp3");
    mciSendString(data,NULL,0,NULL);
    printf("play test.mp3\n");
    PlaySound("test.wav",NULL,SND_SYNC);
    printf("play test.wav\n");
    for( ; ; ){}
    }



  • Laut Doku von hier
    http://msdn.microsoft.com/en-us/library/dd743667(VS.85).aspx

    ist es für den Typ "waveaudio" nich moeglich, repeat anzugeben.
    Es sei denn, ich werde eines besseren belehrt.



  • Entschuldigung aber ich verstehe kein Wort.:(
    (Ich verwende doch gar kein waveaudio.)
    Also frage ich nochmal wie kann ich die Hintergrundmusik in der Endlosschleife abspielen?



  • Warum liest du nicht den Artikel, den ich dir geschickt habe,
    WARUM NUR WARUM? 😃

    // 2. Zeile
    digitalvideo	from positionfullscreen [b]repeat[/b]	reverse to positionwindow
    

    repeat ist hier nur fuer digitalvideo moeglich. Ich vermute, du spielst kein Video ab?



  • Ich habe es doch gelesen aber ich verstehe nicht was das mit meinem Problem zu tun hat.
    Ich verwende doch gar kein waveaudio!
    Und man kann die Hintergrundmusik doch sicher irgendwie in der Endlosschleife abspielen.
    Wenn man dafür einen anderen Befehl braucht dann sag mir bitte welchen,
    und wenn es möglich ist möchte ich das mit den Dateien machen die bei meinem Compeiler dabei sind.



  • *HMMMPFFFFFFFF*

    Vielleicht hilft dir das weiter. Da kannst du die Laenge des Tracks auslesen.
    Da solltest du dann eventuell Threads verwenden.

    char sReturn[128];
    int ms;
    
    memset(sReturn,0,sizeof(sReturn));
    
    mciSendString("open start.wav type MPEGVideo alias mp3audio", NULL,0,NULL);
    mciSendString("status mp3audio length", sReturn, sizeof(sReturn), NULL);
    
    ms = atoi(sReturn);
    
    while(true)
    {
    	mciSendString("play start.wav from 0 repeat",NULL,0,NULL);
    	Sleep(ms);
    }
    


  • Hallo,

    JoelW schrieb:

    PROBLEMME ⚠
    1.Zum zweiten mal wenn ich ein | mache kommt die Fehlermeldung stray '/246' in program!
    2.Ich will aber das zwei .wav dateien gleichzeitig laufen! da gibt es doch sicher einen Befehl dafür.
    Bitte helft mir 😞

    1. Der Editor deiner IDE kann ein Zeichen nicht verarbeiten. Entferne dieses Zeichen aus den Quellcode. Das kommt meist daher, dass man von irgendwo Code kopiert und in den Editor einfügt.
    2. Starte die Dateien direkt nacheinander. Für den Menschen sind die paar Nanosekunden nicht wahrnehmbar, du spielst sie quasi gleichzeitig ab.



  • BasicMan01:

    Wie macht man Threads?
    Könntest du mir das bitte in einem Beispielprogramm zeigen?
    (Entschuldigung das ich schon wieder so eine Frage stellen musste,
    aber ich fand mit Google einfach nichts das ich mit Dev-C++ 4.9.8.0 compilieren konnte!):(

    Falls du schon wieder sagst ich solle meinen Compeiler wechseln sag ich nein! :p

    problemerkenn0r schrieb:

    1. Der Editor deiner IDE kann ein Zeichen nicht verarbeiten. Entferne dieses Zeichen aus den Quellcode. Das kommt meist daher, dass man von irgendwo Code kopiert und in den Editor einfügt.

    Ich habe aber keinen Code kopiert!
    Ich muss einfach Alt Gr und 1 drücken: ¦ !



  • Ach ... dich gibs auch noch 😃

    1. ich hoffe, du hast nicht mehr Windows 95 *scherz*
    2. Es würde sich anbieten, für extra Fragen jeweils ein Thema aufzumachen 😉
    3. du weisst hoffentlich schon mal, was Threads überhaupt sind
    4. du informierst dich über CreateThread unter http://msdn.microsoft.com/en-us/library/ms682453(VS.85).aspx
    5. du bindest die windows.h ein.
    6. du informierst dich kurz über das Thema Funktionspointer, denn die wirst hier brauchen.


Anmelden zum Antworten