我想使用eclipse在javafx中创建一个Movie Player。我的代码编译成功,但它给出了运行时错误。我尝试使用不同的文件路径。 但它没有解决错误。 我的代码是
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 :(得分:0)
正如@Sergei Sirik所说,这是JavaFX而不是纯粹的' java的。无论如何,阅读构造函数(String source)的Media类文档,您将看到:
源必须表示有效的URI并且是不可变的。仅支持HTTP,FILE和JAR URL。如果提供的URL无效,则会抛出异常
所以我建议先创建一个File对象(以便能够检查读写的文件权限等),之后只需将mediaFile.toURI()。toString()传递给Media类构造函数,它就会打开
修改: 我想您将来会使用FileChooser来加载您的视频,这样可以更轻松地创建和处理文件。
我测试了下面的代码,它在我的计算机上成功加载了我的视频。
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。