2017-02-12 1 views
-2

나는 자바와 javafx에 새로 왔으며 javafx 미디어 플레이어를 만들었지 만 괜찮 았지만 사용자가 1을 입력하면 잠깐 멈추고 사용자 입력을 사용하여 기능을 재생하려고했습니다. 일시 중지 기능과 비디오 일시 중지를 수행하십시오. 내 코드를 실행할 때 아무 것도 일어나지 않고 응용 프로그램이 계속로드됩니다. 가능한 한? 어떤 도움도 감사드립니다. sc.nextInt() 효과적으로 실행을 차단, 사용자 입력을 기다리고 있기 때문에사용자 입력에 의해 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

응용 프로그램이 로딩을 유지합니다. 당신은 다른 스레드를 사용할 수 있습니다 ...

@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로 전환하는 것을 고려해야합니다 (예 : 버튼으로 사용자 작업 처리)

관련 문제