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