Skip to Main Content

Java SE (Java Platform, Standard Edition)

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Play a YouTube video in JavaFX?

Andre LopesMay 6 2012 — edited May 8 2012
Moderator action: deleted rant and cleaned up what remains.

I am trying to make this code play an FLV video, and it doesn't show any video. Only Music. How can I convert, for instance, a YouTube video, to play in JavaFX? If I download a YouTube video, how can i encode it?
package musica;


import javafx.application.Application;
import javafx.beans.property.ObjectProperty;
import javafx.event.ActionEvent;

import javafx.event.EventHandler;

import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.StackPane;
import javafx.scene.media.Media;
import javafx.scene.media.MediaErrorEvent;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.stage.Stage;
import javafx.util.Duration;
import javax.swing.Action;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
//import javafx.io.http;

/**
 * 
 * @author André Lopes
 */
public class Musica extends Application {

    public MediaPlayer MP;
    public Media Media;
    public static String URL;
    public static JFileChooser JFC;
    public static Duration currentTime;
    public MediaView mediaView;
    
    //Main
    public static void main(String[] args) {
        launch(args);
    }
    
    public Musica()
    {
        
     currentTime = Duration.ZERO;
     mediaView= new MediaView(MP);
     
       URL = "";
     //URL = "http://download.oracle.com/otndocs/products/javafx/oow2010-2.flv";
    }
            
    
    
    //////////////////////////////////////////////////////////////
    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Hello! This is Yours Music Player!");
       
        
        //Botão Play
        Button Play = new Button();
        Play.setText("Play");
        Play.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event1) {
            
                
                
                Media = new Media(URL);
                MP = new MediaPlayer(Media);
                MP.setStartTime(currentTime);
                mediaView.setMediaPlayer(MP);
                MP.play();
                 
                System.out.println("?"+ MP.getStatus());
                
                
                mediaView.setOnError(new EventHandler<MediaErrorEvent>() {
                @Override
                public void handle(MediaErrorEvent arg0) {
                            
                            System.out.println("MP.getStatus: " + MP.getStatus());
                           
                        }
                    });
                
                
            
               }
       });
                
        
        //Botão Hello World
       
        
        
        //Botão pra escolher Musica
        Button SelctFileButton = new Button();
        SelctFileButton.setText("Music Chooser/Finder:");
        SelctFileButton.setOnAction(new EventHandler<ActionEvent>() {
            @Override
              public void handle(ActionEvent arg0) {
                System.out.println("Java File Chooser Opened");
                JFileChooser search = new JFileChooser();
                search.showDialog(search,URL);
                URL = search.getSelectedFile().toURI().toString();
                System.out.println("URL:"+URL);
            }
        });

            
       //Botão para pausar;
       Button Pause = new Button();
       
       Pause.setText("Pause");
       Pause.setFont(Font.font(null, FontPosture.ITALIC,15));
       Pause.setOnAction(new EventHandler<ActionEvent>() {
       @Override
            public void handle(ActionEvent arg0) {
            try {
                currentTime = MP.getCurrentTime();
                MP.pause();   
                
                }catch(java.lang.NullPointerException e)
                {
                 System.out.println("java.lang.NullPointerException \n");   
                 System.out.println("Error: Unable To pause! May happens if you didnt have a music Playing!");   
                }
                
                }
        });
        
       
       //Botão Para Continuar;
       Button Continue = new Button();
       Continue.setText("Continue/UnPause");
       Continue.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent arg0) {
               //MP.setStartTime(currentTime);
               MP.pause();
            }
        });
        
     
        //Grid ! Layout
        GridPane grid = new GridPane();
        
        StackPane root = new StackPane();
        
        grid.setHgap(2);
        grid.setHgap(2);
        grid.setVgap(2);
        
        Scene Scene = new Scene(root,500,500);
        root.getChildren().add(grid);
        root.getChildren().add(mediaView);
        
        
        //Scene.getStylesheets().add(Musica.class.getResource("Musica.css").toExternalForm());
        //grid.getStyleClass().add(Musica.class.getResource("Musica.css").toExternalForm());
     
        
        primaryStage.setScene(Scene);
        primaryStage.show();
        
        //Adicionando Botoes no Grid
        grid.add(Play,10,10);
        grid.add(SelctFileButton,11,10);
        grid.add(Pause,10,11);
        
        
       
        
    }
}
Edited by: 932269 on 06/05/2012 20:36

Edited by: 932269 on 06/05/2012 20:37

Edited by: EJP on 8/05/2012 12:02
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jun 5 2012
Added on May 6 2012
14 comments
4,506 views