2017-09-29 9 views
-1

eclipseを使用してjavafxでムービープレーヤーを作成したいです。私のコードは正常にコンパイルされますが、ランタイムエラーが発生します。 しかし、エラーは解決されませんでした。 @Sergei Sirikが、これはJavaFXのではなく '純粋な' のjavaで述べたように 私のコードがあるeclipseを使用してjavafxでムービープレーヤーを作成する

package Player3; 

    import javafx.application.Application; 
    import javafx.scene.Group; 
    import javafx.scene.Scene; 
    import javafx.scene.media.Media; 
    import javafx.scene.media.MediaPlayer; 
    import javafx.scene.media.MediaView; 
    import javafx.scene.paint.Color; 
    import javafx.stage.Stage; 

public class MediaPlayer3 extends Application{ 

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

    public void start(Stage stage) throws Exception { 
    Group root = new Group(); 
    Media media =new Media("file:////‪C://Kaise.MP4"); 
    MediaPlayer player4=new MediaPlayer(media); 
    MediaView view = new MediaView(player4); 
    root.getChildren().add(view); 
    Scene scene =new Scene(root,400,400,Color.BLACK); 
    stage.setScene(scene); 
    stage.show(); 
    player4.play(); 

    } 
} 

エラーが

 Exception in Application start method 
     java.lang.reflect.InvocationTargetException 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
     at java.lang.reflect.Method.invoke(Unknown Source) 
     at sun.launcher.LauncherHelper$FXHelper.main(Unknown Source) 
     java.lang.RuntimeException: Exception in Application start method 
     java.lang.RuntimeException: Exception in Application start method 
+0

Java FXはコアJavaではありません。タイトルを修正し、おそらくjavafxタグを追加してください。 –

答えて

0

です。とにかく、コンストラクタ(String source)のMediaクラスのドキュメントを読むと、次のように表示されます:

ソースは有効なURIを表す必要があり、不変です。 HTTP、FILE、およびJAR URLのみがサポートされています。提供されたURLが無効である場合、例外がスローされます

したがって、まずファイルオブジェクトを作成して(読み書きなどのためにファイルアクセス許可をチェックできるようにする)、その後にmediaFile.toURI( ).toString()をMediaクラスのコンストラクタに渡して開きます。

編集: は、私はそれは、ファイルの作成とはるかに簡単に取り扱いを行いますので、あなたのビデオをロードするために、将来的にファイルチューザが使用されますね。

私は以下のコードをテストし、自分のコンピュータに自分のビデオを正常に読み込みました。

import java.io.File; 
import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.media.Media; 
import javafx.scene.media.MediaPlayer; 
import javafx.scene.media.MediaView; 
import javafx.scene.paint.Color; 
import javafx.stage.FileChooser; 
import javafx.stage.Stage; 

public class Main extends Application { 

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

    public void start(Stage stage) throws Exception { 
     Group root = new Group(); 

     FileChooser fc = new FileChooser(); 

     File x = fc.showOpenDialog(null); 

     Media media = new Media(x.toURI().toString()); 
     MediaPlayer player4 = new MediaPlayer(media); 
     MediaView view = new MediaView(player4); 
     root.getChildren().add(view); 
     Scene scene = new Scene(root, 400, 400, Color.BLACK); 
     stage.setScene(scene); 
     stage.show(); 
     player4.play(); 

    } 
} 

あなたが好きな誤りがある場合: MediaExceptionが:MEDIA_UNSUPPORTED:認識されないファイルの署名を! ファイル署名を手動で変更するか、mkvなどのサポートされていないファイル形式を再生しようとしている可能性があります。

+0

コードが壊れていますが、ビデオは再生されません。黒い画面しか表示されません。 – Debu

+0

私もFileChooserを使用しましたが、問題は同じです。 – Debu

+0

投稿をもう一度チェックし、あなたと私が同じコードを実行していることを確認してください。まだ問題がある場合は、私に知らせてください。あなたがロードしたいメディアファイルに関するいくつかの情報を私に与えるようにしてください。 – JKostikiadis

関連する問題