Пример #1
0
 public JMFMovie(File file) {
   try {
     player = Manager.createPlayer(file.toURI().toURL());
     framePositioningControl =
         (FramePositioningControl) player.getControl(FramePositioningControl.class.toString());
     frameGrabbingControl =
         (FrameGrabbingControl) player.getControl(FrameGrabbingControl.class.toString());
     imageConverter =
         new BufferToImage(
             (VideoFormat)
                 ((FormatControl) player.getControl(FormatControl.class.toString())).getFormat());
     player.realize();
   } catch (NoPlayerException e) {
     throw new RuntimeException(e);
   } catch (MalformedURLException e) {
     throw new RuntimeException(e);
   } catch (IOException e) {
     throw new RuntimeException(e);
   }
 }
  /** @param args */
  public static void main(String[] args) {
    String url = "rtp://192.168.1.1:22224/audio/16";

    MediaLocator mrl = new MediaLocator(url);

    // Create a player for this rtp session
    Player player = null;
    try {
      player = Manager.createPlayer(mrl);
    } catch (NoPlayerException e) {
      e.printStackTrace();
      System.exit(-1);
    } catch (MalformedURLException e) {
      e.printStackTrace();
      System.exit(-1);
    } catch (IOException e) {
      e.printStackTrace();
      System.exit(-1);
    }

    if (player != null) {
      System.out.println("Player created.");
      player.realize();
      // wait for realizing
      while (player.getState() != Controller.Realized) {
        try {
          Thread.sleep(10);
        } catch (InterruptedException e) {
          e.printStackTrace();
        }
      }
      System.out.println("Starting player");
      player.start();
    } else {
      System.err.println("Player doesn't created.");
      System.exit(-1);
    }

    System.out.println("Exiting.");
  }
Пример #3
0
  public void capture(String device) {

    CaptureDeviceInfo deviceInfo = CaptureDeviceManager.getDevice(device);
    System.out.println("-----------------------------------------------------------");
    System.out.println("CaptureDevice Name is " + deviceInfo.getName());
    System.out.println("-----------------------------------------------------------");
    System.out.println("CaptureDevice is " + deviceInfo);
    System.out.println("-----------------------------------------------------------");
    Format[] formatsSupported = deviceInfo.getFormats();
    System.out.println("Supports " + formatsSupported.length + " formats");
    for (int findex = 0; findex < formatsSupported.length; findex++) {
      System.out.println("Unique encoding name is " + formatsSupported[findex].getEncoding());
      System.out.println("Format attributes are " + formatsSupported[findex]);
    }
    System.out.println("-----------------------------------------------------------");
    System.out.println("Media Locator is " + deviceInfo.getLocator());
    System.out.println("***********************************************************");
    try {
      player = Manager.createPlayer(deviceInfo.getLocator());
    } catch (java.io.IOException e) {
      System.out.println("IOException");
    } catch (javax.media.NoPlayerException npe) {
      System.out.println("NoPlayerException");
    }
    player.addControllerListener(this);

    System.out.println("About to call start on player");
    player.realize();
    waitForState(player.Realized);
    addVisualElements();
    setVisible(true);
    player.start();
    System.out.println("Called start on player");
    waitForState(player.Started);
    System.out.println("Player started");
  }
Пример #4
0
  public static void play(Playlist playlist, int indexofmedia) throws Exception {
    // la valeur x est utilis�e pour le positionnement du JScroolPane de la
    // JTable
    // la valeur qu'elle cotient � �t� choisit par des experiences que nous
    // avons r�alis�s
    instance.setsStates(SunoneStates.IN_PLAY);
    int x = (4 * 414) / 23;
    // recup�ration du chemin d'une musique dans la playlist
    // la m�thode open file est d�finie dans la classe FileEdited permet juste
    // de lire et renvoyer le chemin d'un fichier
    BufferedReader br = FileEdited.openFile(playlist.getName(), indexofmedia);
    String s = br.readLine();
    br.close();
    CURRENTMEDIA = s;

    do { // debut la grande boucle qui boucle jusqu'� la fin du fin de la playlist
      // et r�p�te eventuellement lorsque Repeter la playlist(REPEATPLAYLIST) est
      // activ�e
      while (s != null) { // boucle de lecture jusqu'� la fin du fichier afin de reinitialiser
        // les param�tres pour la lecture avant de tester repeatPlaylist.

        if (s != null) // debut du trraitement pour chaque fichier multimedia
        // dont le chemin a �t� lu dans la playlist.
        {
          // localisation du m�dia gr�ce � la classe Medialocator de JMF
          // cette methode permet d'encapsuler le media elle permet nous permet
          // donc
          // de faire abstraction du format du fichier utili� ( qu'il soit
          // mp3,mpg, avi ou autres)
          MediaLocator mediaLocator = new MediaLocator((new File(s).toURL()).toString());
          do { // debut de la boucle dont la condition de sortit est que repeter
            // musique
            // ne soit pas activ�.si REPEATMEDIA est activ� il repete la m�me
            // musique.
            try {

              // creation du player. c'est sur lui que le traitement se fait
              // on utilise la classe Manager qui est le gestionnaire permettant
              // return
              // un player (qui est en fait une thread) et c'est sur elle que
              // les op�rations de lecture se feront.
              player = Manager.createPlayer(mediaLocator);

              // ajout du listener qui permet d'�couter les differents phases
              // par lesquels passent
              // le player: de la realisation au debut de la lecture comme nous
              // le verons dans son code
              player.addControllerListener(
                  new ControllerAdapter() {
                    double dureeTotale = 0;

                    // permet d'�couter la fin de la r�alisation du media cet �tat
                    // ne peut �tre atteint que lorsque
                    // la m�thode realise() a �t� appel� auparavant.
                    // lorsque la r�alisation se termine par exemple par exemple, on
                    // peut retirer plusieurs
                    // propri�t� du media. Comme la dur�e totale
                    public void realizeComplete(RealizeCompleteEvent re) {
                      // recuperation de la dur�e du media.
                      dureeTotale = player.getDuration().getSeconds();
                      try {
                        if (PLAYSTATUS != NEXTWASPAUSE) {
                          // quelques initialisations des labels centraux de
                          // l'interface graphique
                          // aussi bien celui du nom de l'artiste que celui de la
                          // dur�e totale de la musique
                          GUI.getInstance().jLabel6.setText("00:00/00:00");
                          GUI.getInstance().jLabel.setText(getArtistName(CURRENTMEDIA));
                          GUI.getInstance().jSlider1.setValue(0);
                        }
                      } catch (Exception e) {
                      }
                      GUI.getInstance().jSlider1.setMaximum((int) dureeTotale);
                      player.prefetch();
                    }

                    public void prefetchComplete(PrefetchCompleteEvent pe) {
                      GUI.getInstance().reinitialiseComposantsLecteur();
                      GUI.getInstance().mediaVisuel = player.getVisualComponent();
                      if (GUI.getInstance().mediaVisuel != null)
                        GUI.getInstance()
                            .mediaVisuel
                            .addMouseListener(
                                new MouseListener() {

                                  public void mouseClicked(MouseEvent e) {
                                    if (e.getClickCount() == 2) {
                                      if (fullScrean == 0) {
                                        fullScrean = 1;
                                        GUI.getInstance().fullScrean =
                                            GUI.getInstance().getFullScrean();
                                        Toolkit kit = Toolkit.getDefaultToolkit();
                                        Dimension screen = kit.getScreenSize();
                                        GUI.getInstance().fullScrean.setSize(screen);
                                        GUI.getInstance()
                                            .fullScrean
                                            .add(GUI.getInstance().mediaVisuel);
                                        GUI.getInstance().setVisible(false);
                                        GUI.getInstance().fullScrean.setAlwaysOnTop(true);
                                        GUI.getInstance().fullScrean.setVisible(true);

                                      } else {
                                        fullScrean = 0;
                                        GUI.getInstance()
                                            .videoPanel
                                            .add(
                                                GUI.getInstance().mediaVisuel, BorderLayout.CENTER);
                                        GUI.getInstance().fullScrean.setVisible(false);
                                        GUI.getInstance().setVisible(true);
                                        GUI.getInstance().fullScrean = null;
                                      }
                                    }
                                  }

                                  public void mouseEntered(MouseEvent e) {}

                                  public void mouseExited(MouseEvent e) {}

                                  public void mousePressed(MouseEvent e) {}

                                  public void mouseReleased(MouseEvent e) {}
                                });
                      player.getGainControl().setDB(-70 + GUI.getInstance().jSlider.getValue());
                      if (GUI.getInstance().mediaVisuel != null) {
                        GUI.getInstance()
                            .jContentPane
                            .add(GUI.getInstance().getJPanel4(), BorderLayout.CENTER);
                        GUI.getInstance()
                            .videoPanel
                            .add(GUI.getInstance().mediaVisuel, BorderLayout.CENTER);
                        GUI.getInstance().videoPanel.setVisible(true);
                        GUI.getInstance().videoPanel.setTitle("SunOne");
                        GUI.getInstance().videoPanel.pack();
                        if (GUI.getInstance().fullScrean != null) {
                          GUI.getInstance().fullScrean.add(GUI.getInstance().mediaVisuel);
                          GUI.getInstance().fullScrean.setVisible(true);
                        }
                      }
                      player.start();
                    }
                  });
              player.realize();

              while (player.getState() != Player.Started) {
                Thread.sleep(70);
              }
              String timeTotal = conversion((int) player.getDuration().getSeconds());
              GUI.getInstance().jTable.setValueAt(timeTotal, CURRENTINDEXMEDIA, 2);
              GUI.getInstance().jTable.setValueAt(GUI.fleche, CURRENTINDEXMEDIA, 0);
              if (CURRENTINDEXMEDIA != 0)
                GUI.getInstance().jTable.setValueAt(" ", CURRENTINDEXMEDIA - 1, 0);
              GUI.getInstance()
                  .jScrollPane
                  .getVerticalScrollBar()
                  .setValue(((4 * 414) / 23) * (CURRENTINDEXMEDIA / 4));
              x += x;
              scrollIncrement = 0;
              if (PLAYSTATUS == NEXTWASPAUSE) {
                player.setMediaTime(TIME);
                PLAYSTATUS = -1;
              }
              while (player.getState() == Player.Started) {
                Thread.sleep(1000);
                int i = (int) player.getMediaTime().getSeconds();
                GUI.getInstance().jSlider1.setValue(i);
                GUI.getInstance().jLabel6.setText(conversion(i) + "/" + timeTotal);
              }

            } catch (NoPlayerException noplayeur) {

              noplayeur.printStackTrace();
            } catch (IOException io) {
              io.printStackTrace();
            }
          } while (REPEATMEDIA == ACTIVE);
        }
        CURRENTINDEXMEDIA = CURRENTINDEXMEDIA + 1;
        br = FileEdited.openFile(playlist.getName(), CURRENTINDEXMEDIA);
        s = br.readLine();
        br.close();
        CURRENTMEDIA = s;
      } // fin de while on a atteint la fin du fichier
      // est assez important car il faut reinitialiser les param�tres et tester
      // si repeat eat actif
      // c'est � dire se replacer au debut du fichier.
      br = FileEdited.openFile(playlist.NAME, 0);
      s = br.readLine();
      br.close();
      CURRENTMEDIA = s;
      CURRENTINDEXMEDIA = 0;

    } while (REPEATPLAYLIST == ACTIVE); // fin de la grande boucle qui tete repeat
    // playlist

  }