[C]Titre lecture musique en cours

Résolu
BastienL21 Messages postés 172 Date d'inscription dimanche 10 décembre 2000 Statut Membre Dernière intervention 12 février 2009 - 11 mai 2008 à 18:04
BastienL21 Messages postés 172 Date d'inscription dimanche 10 décembre 2000 Statut Membre Dernière intervention 12 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.





Cordialement,
[Insert_Emoticon%28%27/imgs2/smile.gif%27%29;

]

             Bastien 

37 réponses

BastienL21 Messages postés 172 Date d'inscription dimanche 10 décembre 2000 Statut Membre Dernière intervention 12 février 2009 2
12 mai 2008 à 21:10
Merci KingDom mais c'est ce que je cherche à faire de récupérer le nom du fichier joué soit par le lecteur Windows Média soit par mon pgm... si quelqu'un m'explique comment faire mais visiblement Neo est sur la bonne voie... reste que Code::Blocks veuille bien me le compiler...enfin que sache m'en servir quoi!!! lol

//Merci à tous de vous interesser à mon problème, Cordialement,

Bastien
0
BastienL21 Messages postés 172 Date d'inscription dimanche 10 décembre 2000 Statut Membre Dernière intervention 12 février 2009 2
12 mai 2008 à 21:14
Voici les code C (c'est ceux des liens msdn que ru viens de me donner) :

HANDLE WINAPI FindFirstFile(
  __in   LPCTSTR lpFileName,
  __out  LPWIN32_FIND_DATA lpFindFileData
);
et
BOOL WINAPI FindNextFile(
  __in   HANDLE hFindFile,
  __out  LPWIN32_FIND_DATA lpFindFileData
);

//Merci à tous de vous interesser à mon problème,Cordialement,
0
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
12 mai 2008 à 21:18
Ce sont juste les declarations, c'est pas a mettre comme ca ds ton code, cherche des exemples sur le site c'est pas ca qui manque ;)
http://www.google.fr/search?hl=fr&q=%22FindFirstFile%22+site%3Acppfrance.com&meta=

Neo_Fr
0
BastienL21 Messages postés 172 Date d'inscription dimanche 10 décembre 2000 Statut Membre Dernière intervention 12 février 2009 2
12 mai 2008 à 21:27
Oula je comprends pu rien!! lol
Ca doit être pour ca que la plupart des codews msdn que j'essaye ne fonctionne pas!!
Tu pourrais pas donner juste un petit exemple STP?
Juste pour voir comment l'utiliser?

//Merci à tous de vous interesser à mon problème,Cordialement,
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BastienL21 Messages postés 172 Date d'inscription dimanche 10 décembre 2000 Statut Membre Dernière intervention 12 février 2009 2
12 mai 2008 à 21:36
En fait il y a un exemple un peu plus bas dans la page, j'essayerais quand j'aurais le temps et je vous tiendrais au courant (Il faut que je sois sur l'autre PC car faire une application avec du son sur un PC qui n' a pas de carte son, c'est pas facile!!!)
Demain si j'ai le temps ce qui n'est pas sûr...

//Merci à tous de vous interesser à mon problème,Cordialement,
0
BastienL21 Messages postés 172 Date d'inscription dimanche 10 décembre 2000 Statut Membre Dernière intervention 12 février 2009 2
13 mai 2008 à 17:21
Bonjour à tous,
    Ce code pour lire du son fonctionne à merveille je vous remerci tous
MAIS, Neo, je pense que ton code serait PARFAIT pour ce que je veux exactement mais... il m'affiche une console vide, sans son ni rien... snif... et si je ne met pas de "getch();" à la fin de mon code, elle s'efface direct (enfin C::B me met tps d'éxécution etc..)
Ce serait vraiment GENIAL si quelqu'un pouvait trouver pourquoi ca ne fonctionne pas et le faire fonctionner

//Merci à tous de vous interesser à mon problème,Cordialement,

Bastien
0
BastienL21 Messages postés 172 Date d'inscription dimanche 10 décembre 2000 Statut Membre Dernière intervention 12 février 2009 2
13 mai 2008 à 17:23
PS:
il y a bien des MP3 dans le répertoire spécifié et mes HP fonctionne: j'ai mis un son sous windows media pour tester

//Merci à tous de vous interesser à mon problème,Cordialement,
0
BastienL21 Messages postés 172 Date d'inscription dimanche 10 décembre 2000 Statut Membre Dernière intervention 12 février 2009 2
13 mai 2008 à 18:19
PAS LA PEINE DE LIRE LES 3 MESSAGE CI-DESSUS




Désolé je n'avais pas bien lu ton message
mais maintenant, ma question (vous allez dire que je suis c***** lol) vat être :
Comment lire le son à partir du titre, genre :
mciSendString("open NomDeLaVariableOuEstStockeLeTitre alias mysound1", 0, 0, 0);
ou
mciSendString("open %s alias mysound1", NomDeLaVariableOuEstStockeLeTitre, 0, 0);
??

//Merci à tous de vous interesser à mon problème,Cordialement,

Bastien
0
BastienL21 Messages postés 172 Date d'inscription dimanche 10 décembre 2000 Statut Membre Dernière intervention 12 février 2009 2
13 mai 2008 à 20:29
Merci énormément, je devrais avoir le temps d'essayer ca demain, je vous tiendrais au courant.( je suis sur mon PC portable là, sans son)
mais ca passe à la compilation donc il ne devrait pas y avoir de pb

//Merci à tous de vous interesser à mon problème,Cordialement,
0
BastienL21 Messages postés 172 Date d'inscription dimanche 10 décembre 2000 Statut Membre Dernière intervention 12 février 2009 2
14 mai 2008 à 12:54
Bonjour,
    Une dernière (du moins je l'espère ) question :
Comment peut-on, arrivé à la fin de la chanson, passer à la suivante, sans intervention de l'user?
(En gros le principale probème est de savoir quand on arrive à la fin de la musique)

//Merci à tous de vous interesser à mon problème,Cordialement,
0
BastienL21 Messages postés 172 Date d'inscription dimanche 10 décembre 2000 Statut Membre Dernière intervention 12 février 2009 2
14 mai 2008 à 12:58
rebjr,
    En fait encore une question (étroitement liée avec la précédente) :
Et-il possible de récupérer le temps total de la musique?

//Merci à tous de vous interesser à mon problème,Cordialement,
0
BastienL21 Messages postés 172 Date d'inscription dimanche 10 décembre 2000 Statut Membre Dernière intervention 12 février 2009 2
14 mai 2008 à 16:37
Excuse moi KingDom mais je n'arrive pas à afficher le temps :
printf("%s", len); -->Je pensais qu'il fallait une fonction de ce genre à la suite du code ci-dessus (mais avec "lenght") mais il m'affiche 0 (J'ai essayé %s; %ld; %lf; %i)
Pourrais-tu donner un petit code exemple juste marqué comment afficher STP?

//Merci à tous de vous interesser à mon problème,Cordialement,
0
BastienL21 Messages postés 172 Date d'inscription dimanche 10 décembre 2000 Statut Membre Dernière intervention 12 février 2009 2
14 mai 2008 à 16:48
Voici le code :

    char tmp[300];
    char variable[100] = "c:\\DOCUME~1\\Bastien\\MESDOC~1\\MAMUSI~1\\test.mp3";
sprintf(tmp, "open %s alias mysound1", variable);

mciSendString("open c:\\DOCUME~1\\B@stien\\MESDOC~1\\MAMUSI~1\\test.wma alias mysound1", 0, 0, 0);
char buf[300];
int len;
mciSendString("play mysound1", 0, 0, 0);
mciSendString("status mysound1 length", buf, 300, 0);
len = atoi(buf);
printf("%d, %s", len, buf);

Et le résultat  :
0,
Process returned 3 (0x3)   execution time : 0.171 s
Press any key to continue.
Et il y a bien une musique à l'adresse.

//Merci à tous de vous interesser à mon problème,Cordialement,
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
14 mai 2008 à 17:01
J'ai jamais essayé de faire jouer des wma.

Faudrait tester mciSendString pour savoir si il a bien ouvert le fichier. Cette fonction retourne 0 si elle réussie:

if(!mciSendString("open ...", ...)) {
    //reussi
}
else {
    //erreur
}

Si il y a une erreur à l'ouverture, essais de mettre le fichier dans un endroit un peut moins complexe (c:\\test.wma par exemple). Sinon et bien c'est qu'on ne peut lire les wma avec ça.

C++ (@++)
0
BastienL21 Messages postés 172 Date d'inscription dimanche 10 décembre 2000 Statut Membre Dernière intervention 12 février 2009 2
14 mai 2008 à 17:07
Si cette fonction peu lire les .wma, j'ai essayé et ca fonctionne.
Mais c'est pour récupérer le temps ue ca ne va pas...

//Merci à tous de vous interesser à mon problème,Cordialement,
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
14 mai 2008 à 17:34
Je viens de tester. Ça fonctionne bien (lecture et récupération du temps). Cependant, j'ai remarqué que ça ne fonctionnait pas pour tout les wma. Certains refusent tout simplement d'être lu.

C'est peut-être la même chose qui ce passe dans ton cas (mais pour la longueur).

J'ai un fichier nommé title.wma situé dans C:\WINDOWS\system32\oobe\images. Si tu l'as toi aussi, essais de le lire. Normalement, tout devrait bien passer. Sinon, essais avec différent wma. Si c'est toujours la même histoire alors là je sais pas.

C++ (@++)
0
BastienL21 Messages postés 172 Date d'inscription dimanche 10 décembre 2000 Statut Membre Dernière intervention 12 février 2009 2
14 mai 2008 à 18:08
Merci j'ai essayé avec un autre .wma et sa fonctionne
encore merci

//Merci à tous de vous interesser à mon problème,Cordialement,
0
Rejoignez-nous