Partage
  • Partager sur Facebook
  • Partager sur Twitter

Executer VLC en JAVA

Cela ne marche pas simultanement...

    8 janvier 2009 à 16:15:25

    Bonjour les zéros,

    Le -1 que je suis a le problème suivant :

    Ce code marche.


    import java.awt.FlowLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    
    
    public class Frame extends JFrame implements ActionListener{
    	
    	JButton BootVLC = new JButton("Lancer VLC");
    	JButton Quitter = new JButton("Quitter");
    	JButton Bouton3 = new JButton("bouton3");
    	JButton Bouton4 = new JButton("bouton4");
    	
    	public Frame(){
    		
    
    
    			setTitle("Interface de contrôle VLC");
    			setSize(100,300);
    			this.setLocationRelativeTo(null);
    			//setLocation(int x, int y)
    
    			setLayout( new FlowLayout());
    		add(BootVLC);
    		add(Quitter);
    		add(Bouton3);
    		add(Bouton4);
    		
    		BootVLC.addActionListener(this);
    		Quitter.addActionListener(this);
    		
    		setAlwaysOnTop(true);
    		
    		setVisible(true);
    		//pack();
    
    
    
    	}
    	
    	
    	public void openVLC(){
    		try {
    			Process open = Runtime.getRuntime().exec("C:\\Program Files\\VideoLAN\\VLC\\vlc.exe --volume 12");
    
    			}
    			catch (Exception err) {
    			err.printStackTrace();
    			}
    			}
    			
    	
    	
    	public void actionPerformed(ActionEvent e) {
    		if (e.getSource()==BootVLC)
    			openVLC();
    		else
    			if (e.getSource()==Quitter)
    				System.exit(0);
    		
    		
    		
    		
    	}
    	
    	public static void main(String args[]){
    
    		new Frame();
    
    	}
    


    C'est bien mon petit. Bon travail. Tu nous veux quoi, au juste ?


    Ben voila, je lance mon programme, rien ne se passe, et c'est seulement une fois la fenêtre JAVA fermée que VLC se lance.

    Et tu veux pouvoir effectuer des actions sur VLC à partir de ta fenêtre JAVA, donc en même temps, les 2 fenêtres ouvertes (mon JAVA et VLC) ?


    Exactement. Merci de tes questions pertinentes monsieur moi :) (nonon je suis pas skyzo)

    Merci d'avance =)
    • Partager sur Facebook
    • Partager sur Twitter
      8 janvier 2009 à 17:57:20

      mhh lance VLC dans un nouveau thread peut être :o
      • Partager sur Facebook
      • Partager sur Twitter
        9 janvier 2009 à 9:54:03

        mmm... Merci super blagueur, bonne idée mais malheureusement le problème reste le même...Bon après je débute en threads j'vais voir si j'ai pas oublié un truc, j'te tiens au courant ;)

        Si t'a une idée de génie hésite pas :lol:
        • Partager sur Facebook
        • Partager sur Twitter
          9 janvier 2009 à 11:16:16

          Je vais aller voir ton lien, merci.

          Cependant quelque chose d'intéressant et .... d'inquiétant.

          Le problème est exclusif a VLC.

          En effet n'importe quel autre .exe s'exécute simultanément sans problèmes.
          • Partager sur Facebook
          • Partager sur Twitter
            9 janvier 2009 à 11:21:15

            voilà donc pourquoi -_-' je ne trouvais rien sur google =/
            • Partager sur Facebook
            • Partager sur Twitter
              9 janvier 2009 à 13:00:55

              Demande directement aux personnes qui conçoivent VLC...

              Ils sont français (pour la plupart), enfin du moins, ceux qui coordonnent le développement.


              Cordialement,
              Patouche
              • Partager sur Facebook
              • Partager sur Twitter
                9 janvier 2009 à 13:54:23

                Encore du nouveau, toujours plus étonnant :

                J'appuie sur la croix dans mon appli, rien ne se s'ouvre.

                J'appuie sur mon bouton "quitter", et la paf, ça s'ouvre.

                L'exécution s'effectue donc après la fermeture par l'intermédiaire du bouton "quitter".
                • Partager sur Facebook
                • Partager sur Twitter
                  9 janvier 2009 à 14:28:31

                  non ça c'est pas normal par contre XD
                  normalement ça change rien
                  tu as du oublier le setdefaultCloseOperation ^^
                  • Partager sur Facebook
                  • Partager sur Twitter
                    9 janvier 2009 à 14:42:32

                    Okay j'lavais oublié :)

                    Le problème reste effectif, pourquoi VLC et pas les autres programmes ? pourquoi ne s'ouvre t-il qu'à la fermeture ?

                    Vous aurez la suite de ces aventures en suivant notre prochain et dernier épisode, "la solution"
                    • Partager sur Facebook
                    • Partager sur Twitter
                      9 janvier 2009 à 14:59:34

                      il parait quand ?
                      apres ça c'est mon humour qui est pourris :p
                      • Partager sur Facebook
                      • Partager sur Twitter
                        12 janvier 2009 à 9:45:24

                        Petit up pour dire que le problème persiste, que j'ai mitraillé les forum, et que cela se lance donc après un "system.exit(0)".

                        Voici une autre news, si VLC est déjà lancé, alors il effectue la commande que je lui demande instantanément. Le problème vient donc exclusivement de L'OUVERTURE de VLC.

                        de plus en plus bizarre o_O


                        :(

                        edit : problème RESOLU ! il suffisait d'un piti repeat dans la commande, qui "ré-ouvre" le programme, voila la ptite astuce. Merci de vos aides !
                        • Partager sur Facebook
                        • Partager sur Twitter
                          12 janvier 2009 à 14:00:21

                          hein ?
                          montre ton code ^^
                          ça m'intéresse :o
                          • Partager sur Facebook
                          • Partager sur Twitter
                            12 janvier 2009 à 16:44:46

                            Citation : Snooooopy

                            hein ?
                            montre ton code ^^
                            ça m'intéresse :o


                            Idem.

                            Merci d'avance...
                            • Partager sur Facebook
                            • Partager sur Twitter
                              13 janvier 2009 à 8:58:10

                              Fausse joie :p

                              J'avais laissé comme un c** un system.exit(0) dans ma fonction, le repeat fait que dalle =)

                              Bref, nous voici reparti a 0.

                              (Le plus triste est que j'ai dit sur tout les toits(des forums) que c'était bon :( )

                              Désolé ^^'
                              • Partager sur Facebook
                              • Partager sur Twitter
                                13 janvier 2009 à 10:55:22

                                bon j'ai une solution, mais elle est un peu barbare et ne fonctionne que sous Windows

                                en gros tu crée un fichier temporaire et tu écrit dedans un petit script...
                                tu te positionne dans le répertoire de l'application et tu la lance de là. Va savoir pourquoi, ça fonctionne...

                                public void openVLC() {
                                	File tmp = null;
                                	PrintStream out = null;
                                	try {
                                
                                	    tmp = File.createTempFile("consolescript", ".cmd");
                                	    tmp.deleteOnExit();
                                	    out = new PrintStream(new FileOutputStream(tmp));
                                	    out
                                	    .println("cd \"C:\\Program Files\\VideoLAN\\VLC\\\"");
                                	    out
                                	    .println("start vlc.exe");
                                	    out
                                	    .println("exit");
                                	    out
                                	    .println();
                                    out.flush();
                                	} catch (Exception err) {
                                	    err.printStackTrace();
                                	} finally {
                                	    if (out != null)
                                		out.close();
                                	}
                                
                                	try {
                                	    Process open = Runtime.getRuntime().exec(tmp.getPath());
                                	    tmp.delete();
                                	} catch (Exception err) {
                                	    err.printStackTrace();
                                	}
                                
                                    }
                                
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  13 janvier 2009 à 11:31:24

                                  J'suis maudit !

                                  Pas moyen d'exécuter ton code... il est tout bon, j'importe les classes nécessaires, je crée un objet et je lui applique la fonction "openVLC", pas moyen ... :(

                                  Merci beaucoup.

                                  public static void main(String args[]){

                                  test1 blop=new test1();
                                  blop.openVLC();


                                  } //a la suite de ton code
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    13 janvier 2009 à 14:13:07

                                    Même pas, il fait nada.

                                    rien de rien.
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      13 janvier 2009 à 15:59:52

                                      et quand tu ferme ton programme ?
                                      vlc se lance ou pas du tout ?
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        14 janvier 2009 à 9:03:25

                                        Nan mais j'exécute bêtement le code de quarante sept dans un autre projet mais quand je compile et run, Nada de nada. Rien ne se lance.

                                        J'ai dû louper un truc.
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          14 janvier 2009 à 11:11:58

                                          bon -_-' le code
                                          cd "C:\Program Files\VideoLAN\VLC"
                                          start vlc.exe
                                          exit

                                          fonctionne très bien :( si tu créé un fichier batch et que tu l'exécute ... donc c'est pas ça =/

                                          hé hé hé j'ai trouvé ^^
                                          la fonction exec n'est pas blocante :) elle lance un nouveau Thread :)
                                          donc le fichier tmp est directement supprimé pendants sa lecture :)
                                          met un "//" devant
                                          tmp.delete();
                                          :) tu verra ça marche =/ enfin du moins vlc se lance chez moi =/
                                          je sais pas si il se lance en même temps que le programme
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            14 janvier 2009 à 12:00:49

                                            import java.io.File;
                                            import java.io.FileOutputStream;
                                            import java.io.PrintStream;
                                            
                                            
                                            
                                            public class test1 {
                                            	public void openVLC() {
                                            		File tmp = null;
                                            		PrintStream out = null;
                                            		try {
                                            
                                            		    tmp = File.createTempFile("consolescript", ".cmd");
                                            		    tmp.deleteOnExit();
                                            		    out = new PrintStream(new FileOutputStream(tmp));
                                            		    out
                                            		    .println("cd \"C:\\Program Files\\VideoLAN\\VLC\\\"");
                                            		    out
                                            		    .println("start vlc.exe");
                                            		    out
                                            		    .println("exit");
                                            		    out
                                            		    .println();
                                            	    out.flush();
                                            		} catch (Exception err) {
                                            		    err.printStackTrace();
                                            		} finally {
                                            		    if (out != null)
                                            			out.close();
                                            		}
                                            
                                            		try {
                                            		    Process open = Runtime.getRuntime().exec(tmp.getPath());
                                            		    //tmp.delete();
                                            		} catch (Exception err) {
                                            		    err.printStackTrace();
                                            		}
                                            
                                            	    }
                                            
                                            	
                                            	public static void main(String args[]){
                                            
                                            test1 blop=new test1();
                                            blop.openVLC();
                                            
                                            		
                                            	}
                                            
                                            }
                                            


                                            Rien a faire, je lance et rien.

                                            J'suis sur que j'oublie un truc, mais bon.
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              14 janvier 2009 à 14:00:55

                                              en fait c'est un autre problème là...

                                              étant donné que c'est lancé dans un nouveau Thread, le programme (thread principal) se termine tout de suite et le thread créé devient démon et est supprimé par la VM.

                                              Si tu utilise cette fonction dans ta Frame, ça fonctionne très bien.

                                              Tu peux aussi utiliser, pour tester, la fonction waitFor() qui bloque le Thread courant tant que le processus n'est pas terminé.
                                              // ...
                                              Process open = Runtime.getRuntime().exec(tmp.getPath());
                                              open.waitFor();
                                              tmp.delete();
                                              // ...
                                              
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                14 janvier 2009 à 14:35:28

                                                Allons bon.

                                                Cette fois ci il me renvoie que il "ne trouve pas vlc.exe" que je dois "vérifier si le nom est bon" etc...

                                                J'ai pourtant vérifié une bonne huitaine de fois, sans parler des antislash et du "cd".

                                                Tout y est, excepté peut être la chance :(
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  14 janvier 2009 à 15:02:01

                                                  heuu attend
                                                  essaye de créer un fichier batch avec le code que je t'ai donné plus haut :)
                                                  si VLC ne se lance pas a l'éxécution du batch :)
                                                  c'est que le atch ne pointe pas vers le bon truc :)


                                                  cd "C:\Program Files\VideoLAN\VLC"
                                                  start vlc.exe
                                                  exit

                                                  pour crer un fichier batch ...
                                                  ben tu fais clic droit sur le bureau :) nouveau fichier text :)
                                                  tu fait "ouvrire avec" bloque note
                                                  tu copie
                                                  "cd "C:\Program Files\VideoLAN\VLC"
                                                  start vlc.exe
                                                  exit"
                                                  dedans
                                                  puis tu enregistre et tu renomme ton ficher en
                                                  Monfichier.bat

                                                  puis tu double clic dessus :)
                                                  (tans qu'il n'y a pas d'accents ça marche (si y'en a tu dois enregistrer le fichier txt dans un format spécial :o )
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    14 janvier 2009 à 16:26:21

                                                    Même erreur que dans mon JAVA, il y a donc bien un problème avec le chemin, je cherche je sens que j'vais encore passer pour un c... étourdi :euh:
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      14 janvier 2009 à 16:33:51

                                                      :p probablement :)
                                                      parce que ça veux dire que VLC n'est plus installé au bon endroit :p
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter

                                                      Executer VLC en JAVA

                                                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                      • Editeur
                                                      • Markdown