我想使用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
正如@Sergei Sirik提到的,这是JavaFX,而不是纯粹的java。无论如何,阅读构造函数(字符串源)的媒体类的留档,你会看到:
源必须表示有效的URI,并且是不可变的。仅支持HTTP、文件和JAR URL。如果提供的URL无效,则将引发异常
因此,我建议首先创建一个文件对象(以便能够检查文件的读写权限等),然后传递mediaFile。toURI()。toString()指向媒体类构造函数,它将打开。
编辑:我想你将来会使用一个文件选择器来加载你的视频,这样文件的创建和处理就容易多了。
我测试了下面的代码,它成功地在我的电脑上加载了我的视频。
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\u不受支持:无法识别的文件签名!这可能是因为您手动更改文件签名或尝试播放不受支持的文件格式(如mkv)。
我正在尝试我的第一个MediaPlayer javafx应用程序。我遵循了很多操作方法,但我仍然无法在新应用程序上运行视频。 这有什么不好: 应用程序构建正确,没有触发“文件未找到异常”,但播放器卡在未知状态,凸起的窗口具有白色固定背景。既没有提供任何类型的音频。有什么建议吗?
我已经安装了Ubuntu 14.04,当我实例化一个MediaPlayer时,我收到了一个错误。 问题是当我创建媒体播放器时: 异常消息: 我已经安装了ubuntu限制附加组件,以及显示mp4视频所需的所有编解码器。当我用Vlc或其他播放器播放视频时,没有问题。 这可能是 Ubuntu 14.04 中的 JavaFx 问题吗? 我试过jre-1.8
我有以下雄辩的实体: 电影 表结构: 如果一部电影有多部电影,那么每部电影都有多部电影,而每部电影都属于一部电影。 我试图通过movieTheaterId获取当前在movieTheaterId上播放的所有电影,但由于这是一个长期关系,我无法检索此类收藏。 这就是我尝试过的: 调用 我错在哪里?
我想在正在播放时加载视频。
我正在尝试使用JME3X-JFX播放flv文件,我使用demo类,可以通过http url方法播放他们的文件。我还可以下载他们的flv并使用flv方法播放。但是我似乎不能播放我自己的flv文件(在使用一个网站如keepvid(尝试了几个)从youtube视频url(开放许可证)转换后下载)。 这听起来有点像这个问题,只有黑屏显示,但对我来说,视频声音播放。我尝试使用RichFLV编辑元数据,以类似
嘿,我已经开始了一个Java项目,我想使用JavaFX。