Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 32

Discussione: Java e i Video

  1. #1

    Java e i Video

    Buon pomeriggio a tutti,
    spero di non tornare su argomenti gia visti e rivisti, ma cercando in giro non ho trovato nulla che faccia al caso mio.
    Vengo al punto:
    Devo creare un riproduttore di file video, che dovrà mostrare dei trailer, ricevendo solo in ingresso un link del tipo:

    "http://it.clip-1.filmtrailer.com/2409_7821_a_5.wmv".

    In entrata otterrà una serie di questi link, ognuno corrispondente ad un trailer diverso e dovrà riprodurre i vari trailer. quando sarà all'ultimo, dovrà poi iniziare da capo.
    Questo è quanto. purtroppo sono riuscito a fare tutto questo con JavaFX e sono riuscito (non senza difficoltà) ad integrarlo nel mio progetto principale (che si occupa di altro anche) ma quando lancio il programma principale (che mi crea una finestra), i trailer generati dal programma in JavaFX appaiono sotto alla finestra del programma base.. se mi potete consigliare una soluzione in puro codice java sarebbe eccellente!! grazie mille!!

  2. #2
    Nessuno può darmi una mano? Nemmeno un suggerimento per rendere il tutto in codice java puro?

  3. #3
    è passato un pò di tempo ma il problema è rimasto.. ci sono tornato ora a rifletterci.. vi posto l'ultimo spezzone di codice che ho scritto:

    codice:
    import java.awt.BorderLayout;
    import java.awt.Component;
    import java.awt.Image;
    import java.awt.Point;
    import java.awt.Toolkit;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    import java.io.File;
    import java.io.IOException;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLConnection;
    import javax.media.CannotRealizeException;
    import javax.media.Manager;
    import javax.media.NoPlayerException;
    import javax.media.Player;
    import javax.swing.JFrame;
    
    /**
     *
     * @author Nicholas
     */
    
    public class EasyVideo{
        File video;
        String percorsoVideo="";
        URL mediaV;
        MouseListener ml=new MouseAdapter(){
            @Override
            public void mousePressed(MouseEvent evt){
                System.exit(0);
            }
        };
    
        //apro connessione
        public URL apriConnessione(){
            URL videoURL=null;
            URLConnection connessione = null;
            try {
                videoURL = new URL(caricaVideoHttp());
            } catch (MalformedURLException ex) {
                System.out.println("MalformedURLException: "+ex.getMessage());
            }
            try {
                connessione = videoURL.openConnection();
            } catch (IOException ex) {
                System.out.println("IOException: "+ex.getMessage());
            }
            connessione.setDoOutput(true);
    
            return videoURL;
        }
    
        //carico il video
        public String caricaVideoHttp(){
            //"http://it.clip-1.filmtrailer.com/2845_6596_a_5.wmv",
            percorsoVideo="http://it.clip-1.filmtrailer.com/2845_6596_a_5.wmv" ;
            return percorsoVideo;
        }
    
        //creo il pannello
        public void creaPannello(JFrame frameP,URL mediaFile){
              frameP.setLayout( new BorderLayout() ); // crea BorderLayout
              // usa un componente leggero per Swing
              Manager.setHint( Manager.LIGHTWEIGHT_RENDERER, true );
              try{
                 //crea un player per riprodurre il file specificato             
                 Player mediaPlayer = Manager.createRealizedPlayer( mediaFile );
                 
                 //prende i componenti del video
                 Component videoC = mediaPlayer.getVisualComponent();
                 //Component controls = mediaPlayer.getControlPanelComponent();
                 if ( videoC != null ){
                    frameP.add( videoC, BorderLayout.CENTER ); // add video component
                 }
                 videoC.enableInputMethods(true);
                 videoC.addMouseListener(ml);
    
                 //faccio partire il video
                 mediaPlayer.start();
              } // fine try
              catch ( NoPlayerException ex ){
                 System.err.println( "Nessun Player trovato: "+ex.getMessage() );
              }
              catch ( CannotRealizeException ex ){
                 System.err.println( "Impossibile realizzare il player: "+ex.getMessage() );
              }
              catch ( IOException ex ){
                 System.err.println( "Errore di input/output: "+ex.getMessage() );
              }          
        }
    
        //creo la finestra
        public void creaFinestra(int posX,int posY,int larghezza,int altezza){
            URL mediaURL=apriConnessione();
            JFrame frameVideo = new JFrame();
            frameVideo.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
            //creo pannello
            creaPannello(frameVideo, mediaURL);
            //faccio diventare invisibile il cursore
            Image i = Toolkit.getDefaultToolkit().getImage("./vuoto.gif");//.createImage(getClass().getResource("./vuoto.gif"));
            frameVideo.setCursor(Toolkit.getDefaultToolkit().createCustomCursor(i, new Point(0,0), "ciao"));
            //rendo il tutto chiudibile con un click
            frameVideo.enableInputMethods(true);
            frameVideo.addMouseListener(ml);
            //tolgo i bordi
            frameVideo.setUndecorated(true);
            //setto la posizione
            frameVideo.setLocation(posX, posY);
            //setto la dimensione
            frameVideo.setSize( larghezza, altezza );
            //rendo visibile
            frameVideo.setVisible( true );        
        }
    
        public static void main(String[]args){
            EasyVideo ev=new EasyVideo();
            ev.creaFinestra(0,0,1024,768);
        }
    }

    ma se lo mando in esecuzione con il file evidenziato mi genera il seguente errore:
    codice:
    Nessun Player trovato: Cannot find a Player for :http://it.clip-1.filmtrailer.com/2845_6596_a_5.wmv

  4. #4
    potresti provare ad inserire la finestra JavaFX in un frame o panel della tua app principale invece di riscriverla, vedi se questo link ti aiuta
    http://blogs.sun.com/javafx/entry/how_to_use_javafx_in

  5. #5
    mi sembrava di averci gia provato con scarsi risultati ^^
    ora ci riprovo.. cmq nessuna idea sul nuovo progetto? sto tentando di portare il tutto su java puro cosi da non avere complicazioni perchè il tutto è per un cliente..
    possibile che sia impossibile che java non riesce a riprodurre video da http ecc ecc?

  6. #6
    A quanto leggo in giro java media framework non supporta video in formato wmv, solo javafx

  7. #7
    ti dirò, io sono riuscito a far partire un file wmv con JMF, ma solo in locale e non tramite internet.. non riesco a capire perchè XD

  8. #8
    hai letto qui ?
    http://archives.java.sun.com/cgi-bin...st&D=1&P=25378
    in effetti scaricare interamente il video e salvarlo su un file prima di aprirlo potrebbe essere una soluzione

    On a side note, if you add a mime-setting in JMFRegistry to map Windows Media content (such as .asf and .wmv) to the content-type "video/mpeg", JMF can actually play Windows Media or any other DirectShow file (and only file - http wont work). No, I'm not encouraging you to use Windows Media.

  9. #9
    Ciao e scusami se non ho risposto prima, ma stavo staccando dal lavoro XD
    comunque non posso scaricare il video, ci avevo pensato, cosi mi facilitava la cosa, purtroppo tra le direttive del progetto c'è proprio un punto che mi impedisce di scaricarlo sul pc, e devo quindi solo riprodurlo da internet. è possibile che non riesca a raggiungerlo tramite codice? perchè se metto il link sopra citato sulla barra degli url, mi apre windows media player con il video, se lo passo al programma mi dice che non trova un player per riprodurlo..

  10. #10

    Buone nuove

    Allora, finalmente ci sono riuscito! il problema risiedeva nella JMf, che non accetta il formato wmv. trovando un video online ti tipo mpg funziona perfettamente!!
    un'altra domanda ancora, come faccio ad ottenere la durata di un filmato che sto riproducendo?
    spulciando google ho trovato metodi come questo:
    codice:
    //crea un player per riprodurre il file specificato
               mediaPlayer = Manager.createRealizedPlayer( mediaFile );
               //calcolo durata del video
               durata=(int) Math.floor(mediaPlayer.getDuration().getSeconds());
    ma il risultato è questo:
    codice:
    Durata: 2147483647
    con qualsiasi tipo di file di diversa durata.. strano no?
    Qualcuno sa consigliarmi un altro metodo per ottenere la durata del video?

    Grazie per l'attenzione!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.