BastienL21
Messages postés172Date d'inscriptiondimanche 10 décembre 2000StatutMembreDernière intervention12 février 2009
-
11 mai 2008 à 18:04
BastienL21
Messages postés172Date d'inscriptiondimanche 10 décembre 2000StatutMembreDernière intervention12 février 2009
-
14 mai 2008 à 18:08
Bonjour à tous,
Développant une application en C en Console, je voudrais pouvoir récupérer le titre de la musique que le player (Windows media, Winamp, ...) est en train de lire (MSN le fait donc c'est possible ;-) ), afin de l'afficher dans la console.
Ou à la limite que l'on m'explique comment, de manière simple , on pourrais faire lire les musiques par mon appli console.
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 14 mai 2008 à 16:00
"status mysound1 length"
renverra la longueur (en ms je crois) dans un buffer char passé en 2ème argument que tu pourras convertir en int par la suite.
char buf[300];
int len;
mciSendString("status mysound1 length", buf, 300, 0);
len = atoi(buf);
BastienL21
Messages postés172Date d'inscriptiondimanche 10 décembre 2000StatutMembreDernière intervention12 février 20092 11 mai 2008 à 20:58
Merci BruNews mais:
-
pour playsound: d'après ce que j'ai pu lire sur cette fonction, elle ne permet que de lire des .wav et si ce n'est pas le cas, qu'elle peut aussi lire les mp3, pourrais-tu mettre un petit code d'exemple d'utilisation de la fonction STP?
-
pour ShellExecute: le problème n'est pas d'ouvrir la musique et de la lire (mon programme ouvre toute les musiques contenues dans "ma musique" via le player par défaut), mais de récupérer le titre de la musique qui est en cour de lecture (soit via le player par défaut, soit par une fonction qui "l'ouvre" directement via mon appli mais aschant que si l'on opte pour cette solution, il faut pouvoir lire un maximum de format (.wav, .mp3, .wma, ....) et que pendant la lecture de la musique, la suite du pgm s'éxecute. (au pire je peu faire:
system("NomDeMonAppliQuiLitDeLaMusique"); et simuler un Alt+Tab pour que mon appli principale repasse devant et la faire travailler en tâche de fond.(l'appli qui lit la musique))
PS: les (titres des) musiques ne sont pas (pré)défini lors de la compilation ou dans le code source mais c'est juste le répertoire où elles se situes qui peut-être éventuellement prédéfini ("Ma Musique").
BastienL21
Messages postés172Date d'inscriptiondimanche 10 décembre 2000StatutMembreDernière intervention12 février 20092 11 mai 2008 à 22:43
Bonsoir,
Merci SAKingdom mais à la compilation de ce code, erreurs. Voici les messages :
undefined reference to `_mciSendStringA@16'
undefined reference to `_mciSendStringA@16'
undefined reference to `_mciSendStringA@16'||Build finished: 3 errors, 0 warnings|
BastienL21
Messages postés172Date d'inscriptiondimanche 10 décembre 2000StatutMembreDernière intervention12 février 20092 11 mai 2008 à 23:21
Bonsoir,
Neo, tu veux dire ajouter la ligne "#pragma comment( lib, "winmm.lib" )"?
Si oui c'est déjà fait sinon si tu peux expliquer ce qu'il faut faire STP
Neo_Fr
Messages postés653Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention10 novembre 20142 11 mai 2008 à 23:58
Quelle compilateur utilises-tu avec C:B?; par defaut c'est GCC et il me semble que le #pragma(lib n'est pas reconnu, regarde ds les options du projet tu doit avoir possibilité de rajouter des lib a linker quand tu auras trouver ajoute -libwinmm ou winmm.lib
BastienL21
Messages postés172Date d'inscriptiondimanche 10 décembre 2000StatutMembreDernière intervention12 février 20092 12 mai 2008 à 13:03
Bonjour,
Neo, j'ai aouter winmm mais j'ai un message d'erreur à la compilation :
|cannot find -l-libwinmm||Build finished: 1 errors, 0 warnings|
avec "-libwinmm"
ou
|cannot find -lwinmm.lib||Build finished: 1 errors, 0 warnings|
avec "winmm.lib"
BastienL21
Messages postés172Date d'inscriptiondimanche 10 décembre 2000StatutMembreDernière intervention12 février 20092 12 mai 2008 à 18:44
Merci Neo ca a l'air de fonctionner mais je ne peu pas essayer sur ce PC (qui ne fonctionne qu'en mode sans echecs, donc sans son).
Mais je me pose deux questions :
-Avec cette solution, comment fait-on pour définir non pas un titre mais dire de lire tous les titres contenu dans le sossier "ma musique" de l'utilisateur
-Et est-ce que la suite du programme s'éxecute durant la lecture de la musique
Et aussi...comment récupère-t-on le titre de la musique étant donné qu'il faut que ca lise toute les musiques de l'utilisateur, donc que l'on ne connait ni le nombre, ni les titres de(s) musique!!
//Merci à tous de vous interesser à mon problème,Cordialement,
BastienL21
Messages postés172Date d'inscriptiondimanche 10 décembre 2000StatutMembreDernière intervention12 février 20092 12 mai 2008 à 21:00
Bonsoir,
Si je copie le texte donné pour FirtFile, voici les erreurs à la compilation :
|In function `main':|
|error: syntax error before "LPCTSTR"||Build finished: 1 errors, 0 warnings|
et pour NextFile :
|In function `main':|
error: syntax error before "HANDLE"|||Build finished: 2 errors, 0 warnings|
C'est sans doute une erreur toute bête mais je débute...
Je rappel que je compile en C et non C++ (je le rappel ca a souvent une importance et je sais que BOOL est + ou - du C++...)
//Merci à tous de vous interesser à mon problème,Cordialement,
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 12 mai 2008 à 21:05
"Et est-ce que la suite du programme s'éxecute durant la lecture de la musique"
Oui. Le système créera un thread dédié à la lecture.
"Et aussi...comment récupère-t-on le titre de la musique"
Ça dépend du format.
Les mp3, par exemple, contiennent des TAGs (ID3v1/v2) ainsi que les informations de base. Ces TAGs contiennent, entre autre, le nom de la pièce, si il y en a un. Cependant j'ignore complètement comment récupérer ces TAGs ou les informations de base.
Pour faire très simple, tu peux simplement récupérer le nom du fichier joué.
Neo_Fr
Messages postés653Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention10 novembre 20142 12 mai 2008 à 21:08
Pour les tags ID3v1 c'est les 128 derniers octets du fichier, pour les ID3v2 ca devient plus compliquer a récuperer, sinon pr tes erreurs sans le code c difficile a dire..