我的代码ID
public class Video1 extends Application {
private static String arg1;
@Override public void start(Stage stage) {
stage.setTitle("Media Player");
// Create media player
Media media = new Media("/home/ubuntu/NetBeansProjects/VideoPaly/src/videopaly/vid.flv");
javafx.scene.media.MediaPlayer mediaPlayer = new javafx.scene.media.MediaPlayer(media);
mediaPlayer.setAutoPlay(true);
mediaPlayer.setCycleCount(javafx.scene.media.MediaPlayer.INDEFINITE);
// Print track and metadata information
media.getTracks().addListener(new ListChangeListener<Track>() {
public void onChanged(Change<? extends Track> change) {
System.out.println("Track> "+change.getList());
}
});
media.getMetadata().addListener(new MapChangeListener<String,Object>() {
public void onChanged(MapChangeListener.Change<? extends String, ? extends Object> change) {
System.out.println("Metadata> "+change.getKey()+" -> "+change.getValueAdded());
}
});
// Add media display node to the scene graph
MediaView mediaView = new MediaView(mediaPlayer);
Group root = new Group();
Scene scene = new Scene(root,800,600);
root.getChildren().add(mediaView);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
if (args.length > 0) {
arg1 = args[0];
}
Application.launch(args);
}
}
我想在Ubuntu的资源上播放视频,当我运行上面的代码时,它会给出错误,例如java.lang.IllegalArgumentException:uri.getScheme()== null!在线
Media media = new Media("/home/ubuntu/NetBeansProjects/VideoPaly/src/videopaly/vid.flv");
对此有何看法?
答案 0 :(得分:1)
来自JavafX2 Media类构造函数doc:
构造一个Media实例。这是指定媒体的唯一方法 资源。源必须表示有效的URI并且是不可变的。的只有 支持HTTP,FILE和JAR URL 。如果提供的URL无效 然后会抛出异常
<强>抛出强>: java.lang.IllegalArgumentException - 如果 URI字符串不符合RFC-2396 ,或者(如果适用)Jar URL 规范,或者是不符合要求的形式,不能修改 符合标准的表格。
所以你的源uri应该是这样的:
file://媒体路径