Accueil > Forum > > > > musique qui grésille [Console]
musique qui grésille [Console]
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ée 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
|
Derniers Blogs
[WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|