2017-02-12 2 views
-2

Ich bin neu in Java und Javafx, ich habe Javafx Media Player erstellt und es funktioniert gut, aber ich habe versucht, Pause und Play-Funktionen mit Benutzereingabe aus Beispiel wenn Benutzer geben 1 sollte Führen Sie die Pause-Funktion und die Video-Pause durch. Wenn ich meinen Code ausführen, geschieht nichts und die Anwendung wird geladen. Ist das möglich? jede Hilfe wird im Voraus geschätzt.Wie man Javafx Media Player App durch Benutzereingaben steuert

public class Main extends Application { 
Player player ; 

@Override 
public void start(Stage primaryStage) { 

    player =new Player("file:///C:/song.mp4"); 
    Scene scene =new Scene(player,720,480,Color.BLACK); 



    primaryStage.setScene(scene); 

    primaryStage.show(); 
    user(); 
} 
public void user(){ 
    Scanner sc =new Scanner(System.in); 
    System.out.println("enter 1 to pasue"); 
    int option =sc.nextInt(); 
    player.pause1(option); 
} 


public static void main(String[] args) { 
    launch(args); 

Antwort

0

Ihre Anwendung hält Laden weil sc.nextInt() wird für Benutzereingaben wartet, effektiv die Ausführung blockiert. Sie können einen anderen Thread dafür verwenden ...

@Override 
public void start(Stage primaryStage) { 
    MediaPlayer player = new MediaPlayer(new Media("http://www.archive.org/download/moby_dick_librivox/mobydick_000_melville.mp3")); 
    MediaView view = new MediaView(player); 
    Pane root = new Pane(view); 
    Scene scene = new Scene(root); 

    primaryStage.setTitle("Mp3 player"); 
    primaryStage.setScene(scene); 
    primaryStage.show(); 
    player.play(); 

    new Thread(() -> { 
     Scanner sc = new Scanner(System.in); 
     System.out.println("enter 1 to pasue"); 
     int option = sc.nextInt(); 
     if (option == 1) { 
      player.stop(); 
     } 
    }).start(); 
} 

public static void main(String[] args) { 
    launch(args); 
} 

und es wird funktionieren, aber das ist auch keine gute Lösung. Konsolenanwendungen eignen sich für Aufgaben, die im Stapelmodus ausgeführt werden können. Ihre Anwendung hingegen ist eine interaktive Anwendung, daher sollten Sie in die ereignisgesteuerte Programmierung und GUI wechseln, indem Sie beispielsweise Benutzeraktionen mit den Tasten

ausführen