Menu

Java Runtime et Winamp [Résolu/Fermé]

Soldiertt 15 Messages postés mardi 9 août 2005Date d'inscription 7 septembre 2008 Dernière intervention - 29 sept. 2005 à 20:09 - Dernière réponse :  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.
Afficher la suite 

6 réponses

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


http://httpq.sourceforge.net/faq.html

Merci theDuke 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

CCM a aidé 25020 internautes ce mois-ci

choubaka 37691 Messages postés jeudi 4 avril 2002Date d'inscriptionModérateurStatut 13 octobre 2018 Dernière intervention - 30 sept. 2005 à 09:21
0
Merci
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 ...

Soldiertt 15 Messages postés mardi 9 août 2005Date d'inscription 7 septembre 2008 Dernière intervention - 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.
choubaka 37691 Messages postés jeudi 4 avril 2002Date d'inscriptionModérateurStatut 13 octobre 2018 Dernière intervention - 3 oct. 2005 à 19:36
0
Merci
tu peux peut être intégrer ceci dans ton programme

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

Soldiertt 15 Messages postés mardi 9 août 2005Date d'inscription 7 septembre 2008 Dernière intervention - 5 oct. 2005 à 19:57
0
Merci
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
Merci
quel est le "code d'activation valide" pour winamp?
merci d répondre rapidement:)