Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javafx声音/视频播放_Java_Video_Javafx_Mp3_Playback - Fatal编程技术网

javafx声音/视频播放

javafx声音/视频播放,java,video,javafx,mp3,playback,Java,Video,Javafx,Mp3,Playback,我一直在尝试使用JavaFX播放一些mp3和视频,但没有结果。我也搜索了这个论坛上的每一个主题,寻找解决方案,但没有成功。。。 如果有人能帮助我,我将不胜感激 这是我的代码: @Override public void start(Stage primaryStage) throws MalformedURLException { primaryStage.setTitle("Embedded Media Player"); Group root = new Group();

我一直在尝试使用JavaFX播放一些mp3和视频,但没有结果。我也搜索了这个论坛上的每一个主题,寻找解决方案,但没有成功。。。 如果有人能帮助我,我将不胜感激

这是我的代码:

  @Override
public void start(Stage primaryStage) throws MalformedURLException {
    primaryStage.setTitle("Embedded Media Player");
    Group root = new Group();
    Scene scene = new Scene(root, 540, 241);
    File f = new File("src/sample/test2.mp3");

    Media media = new Media(f.toURI().toString());

    MediaPlayer mediaPlayer = new MediaPlayer(media);
    mediaPlayer.setAutoPlay(true);

    MediaView mediaView = new MediaView(mediaPlayer);

    System.out.println("mediaPlayer.getMedia() = " + mediaPlayer.getMedia().getSource());
    System.out.println("mp.getStatus() = " + mediaPlayer.getStatus());
    System.out.println("mediaPlayer.getTotalDuration() = " + mediaPlayer.getTotalDuration());
    System.out.println("mediaPlayer.getMedia().getSource() = " + mediaPlayer.getMedia().getSource());

    ((Group)scene.getRoot()).getChildren().add(mediaView);
    primaryStage.setScene(scene);
    primaryStage.show();
    mediaPlayer.play();
mediaPlayer.getMedia() = file:/C:/Users/Piotr/Desktop/okon/src/sample/test2.mp3
mp.getStatus() = UNKNOWN
mediaPlayer.getTotalDuration() = UNKNOWN
mediaPlayer.getMedia().getSource() = file:/C:/Users/Piotr/Desktop/okon/src/sample/test2.mp3
和输出:

  @Override
public void start(Stage primaryStage) throws MalformedURLException {
    primaryStage.setTitle("Embedded Media Player");
    Group root = new Group();
    Scene scene = new Scene(root, 540, 241);
    File f = new File("src/sample/test2.mp3");

    Media media = new Media(f.toURI().toString());

    MediaPlayer mediaPlayer = new MediaPlayer(media);
    mediaPlayer.setAutoPlay(true);

    MediaView mediaView = new MediaView(mediaPlayer);

    System.out.println("mediaPlayer.getMedia() = " + mediaPlayer.getMedia().getSource());
    System.out.println("mp.getStatus() = " + mediaPlayer.getStatus());
    System.out.println("mediaPlayer.getTotalDuration() = " + mediaPlayer.getTotalDuration());
    System.out.println("mediaPlayer.getMedia().getSource() = " + mediaPlayer.getMedia().getSource());

    ((Group)scene.getRoot()).getChildren().add(mediaView);
    primaryStage.setScene(scene);
    primaryStage.show();
    mediaPlayer.play();
mediaPlayer.getMedia() = file:/C:/Users/Piotr/Desktop/okon/src/sample/test2.mp3
mp.getStatus() = UNKNOWN
mediaPlayer.getTotalDuration() = UNKNOWN
mediaPlayer.getMedia().getSource() = file:/C:/Users/Piotr/Desktop/okon/src/sample/test2.mp3
编辑: 转到Ubuntu解决了我的问题

添加一个侦听器:

mediaPlayer.statusProperty().addListener(新的ChangeListener()){ @凌驾 公共无效已更改(可观察值可观察、对象旧值、对象新值){ System.out.println(“mp.getStatus()=”+mediaPlayer.getStatus()); System.out.println(“mediaPlayer.getTotalDuration()=”+mediaPlayer.getTotalDuration()); }
});

你的位置看起来还不错。您可以尝试使用
Media Media=new Media(getClass().getResource(“/sample/test2.mp3”).toExternalForm())并更新您的发现?