如何通过用户输入控制Javafx媒体播放器应用程序

时间:2017-02-12 08:32:29

标签: java javafx

我是java和javafx的新手,我创建了javafx媒体播放器并且它很好但我尝试使用用户输入来控制暂停和播放功能,例如如果用户输入1应该执行暂停功能和视频暂停。 当我运行我的代码时,没有任何事情发生,应用程序继续加载。这可能吗?任何帮助表示感谢提前。

{{1}}

1 个答案:

答案 0 :(得分:0)

您的应用程序一直在加载,因为sc.nextInt()正在等待用户输入,从而有效阻止了执行。你可以使用另一个线程...

@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);
}

它会起作用,但这也不是一个好的解决方案。控制台应用程序适用于可以批处理模式执行的任务。另一方面,您的应用程序是交互式的,因此您应该考虑切换到事件驱动的编程和GUI,例如,通过按钮处理用户操作