Java Runtime et Winamp

Résolu/Fermé
Soldiertt Messages postés 13 Date d'inscription mardi 9 août 2005 Statut Membre Dernière intervention 7 septembre 2008 - 29 sept. 2005 à 20:09
 famous - 2 janv. 2008 à 11:51
HEllo,

Alors voici, j'ai développé une petite web-app qui est en sorte un super audiothèque de tous les mp3 sur mon pc.

Je donne la possibilité de jouer les différents morceaux mp3 en cliquant sur leur nom. Pour cela, j'utilise en java :

Runtime r = Runtime.getRuntime();
if (aTrack != null){
r.exec(winampPath + " " + aTrack);
...

ca marche seulement voila, winamp se lance "en background" et je ne sais pas l'arreter (execpté via taskmgr) . Il ne lance pas winamp normalement en donnant le focus sur la fenetre.

Ca vaut dire que je peux egalement manuellement lancer winamp normallement et lui faire jouer un autre morceau. une belle cacophonie.

l'utilisateur propriétaire de la tache winamp lancée par mon programme est "system", j'imagine que le probleme est là mais comment lui dire d'utiliser mon user ?

Ce problème ne se pose que lorsque j'ai déployé mon War dans tomcat 5. Bizarrement, en eclipse, en développement, avec ce même tomcat, je n'ai pas ce problème.

Une idée de piste, s'il vous plait ?

Merci d'avance.
A voir également:

5 réponses

Tu peu aussi aussi télécommander winamp via HTTP grace au plugin HTTPQ , c'est TRES pratique :


http://httpq.sourceforge.net/faq.html
1
choubaka Messages postés 39375 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 14 avril 2024 2 100
30 sept. 2005 à 09:21
Salut

pour eviter que tu puisses lancer deux fois ce lecteur, tu peux t'orienter vers ceci

http://www.javafr.com/codes/TUTORIEL_DESIGN_PATTERN_SINGLETON/18540.aspx

ceci évite d'avoir plusieurs instances d'une classe ...

0
Soldiertt Messages postés 13 Date d'inscription mardi 9 août 2005 Statut Membre Dernière intervention 7 septembre 2008 3
3 oct. 2005 à 18:50
Merci

mais dans le cas précis que je décris, je ne fais pas appel à une classe particulière. J'utilise simplement l'instruction :

Runtime.getRunTime().exec(<winamp path>....)

et à chaque nouvel appel, cela fonctionne en ce sens que le nouveau morceau est bien joué à la place de la lecture en cours.

Le seul problème est que je n'ai pas le contrôle sur le process Winamp qu'il a lancé. Etant donné qu'il n'a pas ouvert winamp en tant qu'application.

Autre conséquence, je peux faire un log-off et la musique continue à se jouer, c'est comme si il en avait fait un service. Ce que je ne veux pas.

Merci encore.
0
choubaka Messages postés 39375 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 14 avril 2024 2 100
3 oct. 2005 à 19:36
tu peux peut être intégrer ceci dans ton programme

http://www.supinfo-projects.com/fr/2005/lecteurmp3/

0
Soldiertt Messages postés 13 Date d'inscription mardi 9 août 2005 Statut Membre Dernière intervention 7 septembre 2008 3
5 oct. 2005 à 19:57
Hello,

Problème résolu.

L'astuce se trouve dans le fait que mon programme étant une web-app qui tourne sous Apache Tomcat 5.5, et que je lance tomcat en tant que service au démarrage, mon applic tourne en service et toutes les applications lancées avec :

Runtime.getRuntime().exec(...) tourneront comme des services.

Solution : dans les paramètres des services windows, cocher la case "Allow service to interact with desktop". (pour service Tomcat)

En conséquence, j'ai une console en plus qui démarre pour Tomcat, mais au moins, mes appels a Winamp se font correctement.
0

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

Posez votre question
quel est le "code d'activation valide" pour winamp?
merci d répondre rapidement:)
0