Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - mettere in pausa una canzone
Forum - C/C++ - mettere in pausa una canzone

Avatar
zelda64 (Normal User)
Newbie


Messaggi: 4
Iscritto: 13/07/2011

Segnala al moderatore
Postato alle 18:07
Giovedì, 21/07/2011
Questo topic è stato chiuso dal moderatore

ho questo codice che fa partire una canzone la mette in pausa e la riavvia
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <iostream>
  3. #include <windows.h>
  4. #include <mmsystem.h>  
  5. #include <conio.h>
  6. using namespace std;
  7. int main()
  8. {
  9.     char p, i;
  10.         cout << "premi A per avviare P per la pausa e R per riavviare " << endl;
  11.         fflush( stdin );
  12.         fflush( stdin );
  13.         cin >> &p;
  14.         cin >> &i;
  15.         mciSendString("play C:\\canzone.mp3",NULL,0,0);
  16.         switch(p)
  17.         {
  18.                   case 'p':
  19.                        mciSendString("pause C:\\canzone.mp3", NULL, 0, 0);
  20.                        break;
  21.                        case 'a':
  22.                             mciSendString("play C:\\canzone.mp3", NULL, 0, 0);
  23.                             break;
  24.                             case 'r':
  25.                                   mciSendString("resume C:\\canzone.mp3", NULL, 0, 0);
  26.                                   break;
  27.                                  
  28. }
  29.         getch();
  30.         return 0;
  31. }


solo che quando
dò due ordini ad esempio prima premo A e parte la musica poi premo P e il programma finisce comunque vorrei  sapere  pure come aprire un file.mp3 che voglio io senza si apra sempre la stessa canzone e come dare un ordine appena si preme un tasto grazie mille a chi mi risponderà :)


Perdonerò quel che ho fatto e penserò a quel che farò.


PM
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Up
1
Down
V
Segnala al moderatore
Postato alle 20:05
Giovedì, 21/07/2011
Testo quotato

Scrivimi il codice per intero così lo compilo e sono felice - zelda64 -



:nono:

No Zelda, in questo caso posta nella sezione "Il Mercatino" ... qui si spera che chi apre un thread ci metta un po' di suo per risolvere il problema ...

ma il mercatino serve per le vendite - zelda64 - 21/07/11 20:11
Non solo ... anche per cercare un programmatore a pagamento ... - nessuno - 21/07/11 20:12


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM
Avatar
comina8 (Normal User)
Pro


Messaggi: 86
Iscritto: 18/06/2011

Up
0
Down
V
Segnala al moderatore
Postato alle 18:37
Giovedì, 21/07/2011
Il programma finisce perchè non hai inserito il tutto in un ciclo:

Codice sorgente - presumibilmente C#

  1. mciSendString("play C:\\canzone.mp3",NULL,0,0);
  2. do
  3.    {
  4.        int tasto=getch();
  5.        switch(tasto)
  6.              {
  7.                    case 'p': ... break;
  8.                    ....
  9.                    case 27: break;
  10.              }
  11.    }
  12. while(tasto!=27); //finche non premi ESC.



Poi penso che una volta inviata la stringa programma e canzone vadano avanti
insieme quindi così dovrebbe bastare...

Per quanto riguarda la canzone devi fare un input di una stringa da inserire poi nella funzione:

Codice sorgente - presumibilmente C#

  1. ...
  2. char Str[100];
  3. char StrFinale[100];
  4. scanf("%s",Str); //input nome canzone (o percorso + l'estensione)
  5. sprintf(StrFinale,"play %s", Str); //scrive in StrFinale la stringa formattata (come una printf che al posto di scrivere sullo schermo scrive in un'altra stringa)
  6. mciSendString(StrFinale,NULL,0,0);


Ultima modifica effettuata da comina8 il 21/07/2011 alle 18:37
mi da errore `tasto' undeclared (first use this function) nella riga while(tasto!=27); - zelda64 - 21/07/11 19:08
Si ti chiedo scusa, int tasto dichiaralo fuori dal do-while... - comina8 - 21/07/11 19:12
quindi dove lo dovrei mettere - zelda64 - 21/07/11 19:21
prima della scritta "do"... - comina8 - 21/07/11 19:23
non parte la canzone adesso :( - zelda64 - 21/07/11 19:27
se scrivo cin >> &tasto mi esce un miliardo di errori - zelda64 - 21/07/11 19:30
ma perchè mettere cin quando basta un getch... - comina8 - 21/07/11 19:33
ma getch non uguale alla funzione system (pause) - zelda64 - 21/07/11 19:36
No che non è uguale... - comina8 - 21/07/11 19:37
e dove dovrei metterlo questo getch() - zelda64 - 21/07/11 19:39
Scusa ma non faresti prima a dirmi: "Scrivimi il codice per intero così lo compilo e sono felice"?? Il getch lo metti dove te l'ho già scritto prima, all'interno del ciclo fai tasto=getch(); e poi con lo switch fai le operazioni che vuoi... - comina8 - 21/07/11 19:41
Intanto che la canzone continua a "girare"... - comina8 - 21/07/11 19:41
Scrivimi il codice per intero così lo compilo e sono felice - zelda64 - 21/07/11 19:44
"Scrivimi il codice per intero così lo compilo e sono felice - zelda64 - 21/07/11 19:44" AHAHAHAH. Questa cosa si è meritata un posto fra i mei screen. - D@vide - 21/07/11 21:13
PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2763
Iscritto: 21/09/2007

Up
0
Down
V
Segnala al moderatore
Postato alle 1:28
Venerdì, 22/07/2011
Questo topic è in violazione di una o più norme del regolamento: http://www.pierotofy.it/pages/extras/forum/9/3839-regolame ... .
    
Dopo averlo letto riapri un nuovo topic assicurandoti di aver rispettato le regole. Grazie per la tua pazienza.


Ingegnere Informatico
https://ldlagency.it
PM