1

私のコード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");

それについて何か考えはありますか?

4

1 に答える 1

1

JavafX2 Media Class コンストラクター doc から:

Media インスタンスを構築します。これは、メディア ソースを指定する唯一の方法です。ソースは有効な URI を表す必要があり、不変です。HTTP、FILE、および JAR URL のみがサポートされています。指定された URL が無効な場合、例外がスローされます

例外: java.lang.IllegalArgumentException - URI 文字列が RFC-2396 に準拠していない場合、または該当する場合は Jar URL 仕様に準拠していない場合、または準拠した形式に変更できない非準拠の形式である場合。

したがって、ソース uri は次のようになります。

file://メディアへのパス

于 2013-01-10T15:17:17.373 に答える