|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : musique qui grésille [Console] [ Windows / Multimédia ] (BastienL21)
Informations & options pour cette discussion
mercredi 28 mai 2008 à 13:12:23 |
musique qui grésille [Console]

BastienL21
|
Bonjour à tous, Je programme actuellement une console qui fait un peu tout...bref en gros il contient une boucle while( !kbhit()) où se trouve dedans plein de petite fonction genre si l'heure actuelle n'est pas l'heur afficher, l'afficher, si l'heure actuelle == l'heure à laquelle il y a une alarme ou un arrêt systeme programmer, l'executer... Et enfin un petit player qui lit toute les musiques contenues dans "ma musique". Or la musique grésille et je pense que cela est dû à la boucle !kbhit() car si je met un grand Sleep(), ca ne le fait plus mais lorsqu'on veu rentrer une commande, la boucle met (trop) longtemps à s'interrompre... ==>Je voudrais donc savoir si quelqu'un aurais une solution pour ne pas que ca grésille sachant que si on l'ouvre via une 2e console, il faut que je puisse récupérer le titre le tps total et la position de la musique (via mciSendString(...);
Si ca peu vous aider, voici la boucle mais je rappel qu'elle doit pouvoir être interrompu rapidement (2 à 3 secondes grand MAX)J'ai mi la partie player en noir et le reste en gris while ( !kbhit() ) { gotoy(7); if(nbr2 == 0) { gotox(nbr1+1); Color(4,0); printf(" *"); nbr1 ++; } if(nbr2 == 1) { gotox(nbr1-1); Color(4,0); printf("* "); nbr1 --; } if(nbr1 == 78) { nbr2 = 1; } if(nbr1 == 0) { nbr2 = 0; }
// --- Lire l'horloge et la convertir en heure locale time_t Time = time(NULL); struct tm* pTM = localtime(&Time); /// if((pTM->tm_sec) != H2) { H2 = (pTM->tm_sec); gotoxy(63,11); Color(10,4); printf("%0.2d", pTM->tm_sec); gotoxy(51,11); Color(10,4); printf("%0.2d", pTM->tm_min); gotoxy(19,11); Color(10,4); printf("%2.2d.%2.2d.%4.4d ", Today.tm_mday, Today.tm_mon + 1 , pTM->tm_year + 1900); gotoxy(19,10); printf("%s", aszJours[pTM->tm_wday]); gotoxy(19,12); printf("%s", aszMois[pTM->tm_mon]); gotoxy(40,11); printf("%0.2d", pTM->tm_hour); } gotoxy(35,29); printf(""); if(ha != 25) { if(pTM->tm_hour == ha) { if(pTM->tm_min >= ma) { Color(10,0); printf("arr%ct du syst%cme...", 136, 138); system("SHUTDOWN -s -t 00"); ha = 25; } } }//h != 25 if(h != 25) { if(pTM->tm_hour == h) { if(pTM->tm_min >= m) { Color(10,0); printf("%c%c%c %s",205,205,16, msg); h = 25; while ( !kbhit() ) { beep(300,1000); sleep(200); } keybd_event(VK_NUMPAD1,0x61,0,0); //Simulation appuie sur 1 keybd_event(VK_NUMPAD1,0x61,KEYEVENTF_KEYUP, 0); //relache 1 keybd_event(VK_RETURN,0x1c,0,0); // Simulation appuie ENTREE keybd_event(VK_RETURN,0x1c,KEYEVENTF_KEYUP, 0); // Relache entrée }//if(H % 3600 / 60 != m) }//if(H % 86400 / 3600 + 1 != h, H % 3600 / 60 != m); }//if(h != 25) sleep(50);
W++; ///*************************************************************/ if(player == 1) { Color(7,0); BouclePlayer++; if((hFind != INVALID_HANDLE_VALUE) && (positionInt != totalInt)) { if((secmusique == 0) && (minmusique == 0) && (BouclePlayer == 1)) { hFind = FindFirstFile(szMP3, &wFindData); nbrM = 0; if(Aleatoire == 1) { srand(time(NULL)); nbrA = ((rand() % (MAX - 0 + 1)) + 0); do { FindNextFile(hFind, &wFindData); nbrM++; }while(nbrA != nbrM); } else if(Aleatoire != 1) { do { FindNextFile(hFind, &wFindData); nbrM++; }while(nbrA != nbrM); } FindClose(hFind); nbrA++; gotoxy(27,3); printf(" "); gotoxy(27,4); printf(" "); sprintf(tmp, "open \"C:\\DOCUME~1\\%s\\MESDOC~1\\MAMUSI~1\\%s\" alias mysound1", Nom, wFindData.cFileName); mciSendString(tmp, 0, 0, 0);//open mciSendString("play mysound1", 0, 0, 0); Color(15,0); Cadre(26,2,2,51); Color(7,0); gotoxy(27,3); printf("%s",wFindData.cFileName); mciSendString("status mysound1 length", total, 300, 0); totalInt = atoi(total); gotoxy(28,4); printf(" / 0:%2d", (totalInt / 1000) % 60); gotox(WhereX()-5); printf("%2d:\n", (totalInt / 1000) %3600 / 60); } if ((totalInt-1) >= positionInt) { mciSendString("status mysound1 position", position, 300, 0); positionInt = atoi(position); /******/ if((positionIntA/1000) != (positionInt/1000)) { gotoxy(31,4); printf("%2d\n", (positionInt / 1000) % 60); gotoxy(28,4); printf("%2d:", (positionInt / 1000) %3600 / 60); positionIntA = positionInt; secmusique++; } if(hFind == INVALID_HANDLE_VALUE) { player = 0; FindClose(hFind); } if((totalInt-1) <= (positionInt)) { BouclePlayer = 0; minmusique = 0; secmusique = 0; positionInt = 0; positionIntA = 0; totalInt = 1; mciSendString("close mysound1",0, 0, 0); } gotoxy(35,29); if(W <= 299) { Sleep(1500); } else { Sleep(1400); } }//player == 1 ///*************************************************************/ /**/ if(W == 300) { gotoxy(10,28); Color(9,0); printf("BBBBBBBBBBBb. LLL \n"); gotoxy(10,29); sleep(75); printf("BB Bb LLL \n"); gotoxy(10,30); sleep(75); printf("BB Bb LLL \n"); gotoxy(10,31); sleep(75); printf("BB BB LLL \n"); gotoxy(10,32); sleep(75); printf("BBBBBBBBBBBBBB LLL \n"); gotoxy(10,33); sleep(75); printf("BB Bb LLL \n"); gotoxy(10,34); sleep(75); printf("BB BB LLLL \n"); gotoxy(10,35); sleep(75); printf("BB B' LLLLLLLLLLLLLLLL \n"); gotoxy(10,36); sleep(75); printf("BBBBBBBBBBBBB' LLLLLLLLLLLLLLLL \n"); sleep(75); gotoxy(47,27); Color(4,0); printf(" __________ __________ \n"); gotoxy(47,28); printf(" /// /// /// \n"); gotoxy(47,29); printf(" /// /// ///_______ \n"); gotoxy(47,30); printf(" /// /// /// \n"); gotoxy(47,31); printf("///_____/// ________/// \n"); } if(W >= 300) { Color(12,0); gotoxy(74,28); printf("%c", 184); gotoxy(73,31); printf("Veille"); sleep(100); Color(4,0); gotoxy(74,28); printf("%c", 184); gotoxy(73,31); printf("Veille"); } } /////////////////////////////////////////////////////////
Je mettrais sûrement, lorsque j'aurais une version vraiment fiable, la source complète (qui est un espèce de mini faux OS lol) sur le site. (ca s'appel BLos)
MERCI d'avance //Merci à tous de vous interesser à mon problème, Cordialement,
|
|
|
mercredi 28 mai 2008 à 15:13:23 |
Re : musique qui grésille [Console]

pepsidrinker
|
Je parles sans avoir verifier, mais est tu bien sur que mciSendString("play mysound1", 0, 0, 0); est du asyncron? Pepsidrinker
|
|
|
mercredi 28 mai 2008 à 17:45:42 |
Re : musique qui grésille [Console]

BastienL21
|
Bonjour, Je ne sais pas mais je sais que ca fonctionne comme ca ;-) (du moins pour lire le son etc...) mais ca grésille (sauf quand on met un grand Sleep après "play" mais la boucle est beaucoup trop longue à s'interrompre...) //Merci à tous de vous interesser à mon problème,Cordialement,
|
|
|
mercredi 28 mai 2008 à 18:12:13 |
Re : musique qui grésille [Console]

Pistol_Pete
|
Salut En mettant un Sleep d'une seconde, ca gresille encore? C'est etonnant. A partir de combien de temps de tempo ta musique ne gresille plus? Pour repondre a pepsidrinker, oui les fonctions mci... sont bien asynchrone. A+ Mon site internet : [ Lien ]
|
|
|
mercredi 28 mai 2008 à 18:34:30 |
Re : musique qui grésille [Console]

BastienL21
|
Bonjour, Oui, moins mais ca grésille encore pas mal, surtout avec les musique ou il y a de la guitard électrique ou des musique ou ca bouge pas mal. pas fort ca s'entend pas énormément mais dès qu'on monte un peu le son, on l'entend bien... Ca ne gresille plus vers ~3500~4000 msmais mon objectif de base était de ne pas dépasser 1 sec pour la boucle complète... et même pour la réactivitée du programme, je ne doit pas aller au dela. (Je peu mettre 2sec vraiment en dernier recours...) //Merci à tous de vous interesser à mon problème,Cordialement,
|
|
|
jeudi 29 mai 2008 à 10:07:37 |
Re : musique qui grésille [Console]

Pistol_Pete
|
C'est tres etrange que ca gressille encore avec 1 seconde de pause... Essaye d'executer cette fonction dans un thread, ca reglera peut etre le probleme. A+ Mon site internet : [ Lien ]
|
|
|
jeudi 29 mai 2008 à 17:46:32 |
Re : musique qui grésille [Console]

BastienL21
|
Bonjour, Pourrais-tu expliquer comment faire STP pour créer un thread? D'après ce que je sais, je pense en effet que ca peu résoudre le problème //Merci à tous de vous interesser à mon problème,Cordialement,
|
|
|
jeudi 29 mai 2008 à 18:21:09 |
Re : musique qui grésille [Console]

Pistol_Pete
|
Salut Regarde l'exemple de la msdn [ Lien ] sur la creation de thread. C'est assez simple, il y a juste une fonction a utiliser: CreateThread() A+ Mon site internet : [ Lien ]
|
|
|
jeudi 29 mai 2008 à 19:05:53 |
Re : musique qui grésille [Console]

BastienL21
|
Bonsoir, Le code exemple est en C++ et génère donc quelque erreurs à la compilation. Je chercherais si je rtouve un code en C et vous tiendrais au courant (avec le code exemple, j'ai : |3|strsafe.h: No such file or directory| |In function `main':| |27|error: 'for' loop initial declaration used outside C99 mode| |75|error: redefinition of 'i'| |27|error: previous definition of 'i' was here| |75|error: 'for' loop initial declaration used outside C99 mode| ||=== Build finished: 5 errors, 0 warnings ===| ) //Merci à tous de vous interesser à mon problème,Cordialement,
|
|
|
vendredi 30 mai 2008 à 19:27:41 |
Re : musique qui grésille [Console]

SAKingdom
|
for(int i = 0; ...) Simplement à déclarer i comme n'importequ'elle autre variable en C non-C99 : En début de bloc de code. { // déclaration des variables int i; ... for(i = 0; ...) ... } C++ (@++)
|
|
|
Cette discussion est classé dans : printf, sleep, gotoxy, tm, if
Répondre à ce message
Sujets en rapport avec ce message
Menu en C [ par acidjackproject ]
Bonjour, j'aimerai faire un menu en C, dans lequel je peux voyager avec les flèches haut et bas. J'ai bien trouvé quelque chose a faire mais avec un d
Aide codage [ par jeanphilippe37 ]
Bonjour, j'avais déja demandé pour me coder mon prgm, ms on a pas voulu!!!! iol Voila, je l'ai codé aprés mon algo. Pourriez vous me dire s'il y
RFID skyetek developer kit [ par chibi59 ]
Salut à tous,J'ai un projet à mener pour mes études il sagit de déveloper une aplication en C++ capable de se connecter à un lecteur RFID de lire des
Problème retour tableau fonction [ par acidjackproject ]
Bnjour, voilà j'explique mon probleme:J'ai une fonction recherche qui parcours un index (tableau de structure). Lorsqu'elle a trouvé l'élément elle me
pendu en c [ par scons ]
bon jour, voila j'ai un probleme avec un programme en Cil s'agit du jeu du pendu.tout me semble pourtant corect mais je pense que je dois a voir un pr
gestion du score [ par cedric ]
Salut à tous, j'aurai grand besoin d'aide. en effet, je voudrai pouvoir intégrer un score dans mon jeu, mais je ne sais pas comment faire, je progamme
Table de hachage avec patronyme [ par guitoontruant ]
Bonjour, Désolé, j'avais d'abord poster dans les discussions libres.Voilà je dois créer une table de hashage de patronymes par le biais de N entrées,
Aide pour un "jeu de l'oie" [ par Meric92 ]
Bonjour,Je souhaite faire un jeux de l'oie en C en mode console ... certes c'est moche mais je débute ...Pour l'instant j'ai fait le bout de code qui
aide [ par achrafgassolina ]
salut tout le monde la j ai une érreure et je c pas comment la resoudre dans la ligne 296:36 dans la condition if et aprés je veux faire la saisie des
rien ne s'affiche a l'execution(les tubes ordinaires) [ par brekiano ]
bonsoir, svp chui débutant dans la programmation systeme sous unix.j'ai fait ce programme qui affiche normalement le résultats de ce pipes : ]$ ps
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|