2016-01-30 39 views
0

我希望你能幫我解決這個問題,我嘗試使這個代碼播放視頻從Button打開像所有程序中的選項文件,但它不工作。我不知道什麼是錯的。我怎麼能從javafx中的FileChooser播放視頻

這是我的代碼:

btn.setOnAction(new EventHandler<ActionEvent>() { 

     @Override 
     public void handle(ActionEvent event) { 
      FileChooser chooser = new FileChooser(); 
      FileChooser.ExtensionFilter filter = new FileChooser.ExtensionFilter("select your media(*.mp4)", "*.mp4"); 
      chooser.getExtensionFilters().add(filter); 
      File file = chooser.showOpenDialog(primaryStage); 
      if (file !=null){ 

       Media source = new Media(file.getPath()); 
       MediaPlayer player = new MediaPlayer(source); 
       MediaView view = new MediaView(player); 
       root.getChildren().add(view); 
       player.play(); 


      } 
      else { 
       label.setText("vide "); 
      } 
+0

你應該追加'file.getPath()'和'文件://''即媒體源=新媒體( 「文件://」 +文件。 getPath());' – ItachiUchiha

+0

@IchichiUchiha:真的嗎?你自己做,即使'File'有一個方法嗎?試試你的方式與一個文件,它的名稱中有一個空間,你會得到一個例外... – fabian

+0

@fabian我發佈了第一件來到我身邊的東西。我會接受你發佈的答案是一個適當的解決方案。 – ItachiUchiha

回答

0

您傳遞路徑the constructor of Media。然而,這個構造函數需要一個URI字符串。幸運的是File可以轉換使用toURIURI到:

Media source = new Media(file.toURI().toString()); 
+0

非常感謝 – abdelati