2017-02-12 4 views
-2

Я новичок в java и javafx, я создал медиа-плеер javafx, и он отлично работает, но я попытался управлять функциями паузы и воспроизведения, используя пользовательский ввод, например, если пользователь вводит 1 выполните функцию паузы и паузу видео. Когда я запускаю свой код actully, ничего не происходит, и приложение продолжает загружать. Это возможно? любая помощь приветствуется заранее.Как управлять медиа-плеером Javafx с помощью ввода пользователем

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

ответ

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

и он будет работать, но это тоже нехорошее решение. Консольные приложения подходят для задач, которые могут выполняться в пакетном режиме. С другой стороны, ваше приложение является интерактивным, поэтому вам следует рассмотреть возможность переключения на управляемое событиями программирование и графический интерфейс пользователя, например, путем обработки действий пользователя с помощью кнопок