java - 无法使用 JavaFX MediaPlayer 播放视频

标签 java javafx media-player

在我的 fxml 文件中我有:

<AnchorPane prefHeight="500.0" prefWidth="500.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.40">
   <children>
      <Button layoutX="14.0" layoutY="461.0" mnemonicParsing="false" text="Dummy Button" />
      <MediaView id="videoView" fitHeight="400.0" fitWidth="450.0" layoutX="14.0" layoutY="14.0" />
   </children>
</AnchorPane>

这是我的代码:

File f = new File("video.mp4");
Media media = new Media(f.toURI().toString());

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

MediaView mediaView = (MediaView) videoLayout.lookup("#videoView");
mediaView.setMediaPlayer(mediaPlayer);

出现虚拟按钮,以便正确加载布局。没有异常或错误,但仍然没有任何反应。我没有看到任何视频帧,没有播放任何内容。我在 Windows 7 上运行该代码。我做错了什么?

编辑:

代码没问题。只是并非我所有的测试内容都得到支持。如下所示,最好检查播放器状态:

mediaPlayer.setOnError(()->System.out.println("media error"
    + mediaPlayer.getError().toString()));

到目前为止,我遇到了 3 个问题:

  1. 打印错误“ERROR_MEDIA_CORRUPTED:ERROR_MEDIA_CORRUPTED”
  2. 没有打印错误,但只播放了音频
  3. 抛出异常“MediaException:MEDIA_UNSUPPORTED:无法识别的文件签名!”

最佳答案

检查媒体是否受支持:

mediaPlayer.setOnError(()->
    System.out.println("media error"+mediaPlayer.getError().toString()));

如果出现 MediaException,例如不支持的音频格式,您将看不到视频,但应用程序会正常启动。

请注意,您可以尝试其他方法,将所有代码嵌入到 FXML 文件中:

<MediaView id="videoView" fitHeight="400.0" fitWidth="450.0" layoutX="14.0" layoutY="14.0">
    <mediaPlayer>
        <MediaPlayer autoPlay="true">
            <media>
                <Media source="@video.mp4" />
            </media>
        </MediaPlayer>
    </mediaPlayer>    
</MediaView>

关于java - 无法使用 JavaFX MediaPlayer 播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30291631/

相关文章:

java - 嵌套 Platform.runLater 调用与顺序调用 : When is it safe to read side effects of layout that happened on the JavaFX Application thread?

java - 从文本文件读取的音乐播放器会同时播放所有片段 Javafx

iphone - 在 iPhone 3.0 SDK 中向 MoviePlayer 添加自定义控件

java - 如何设置项目引用 Eclipse

java - 如何使用 Tycho 将 java 项目构建为带有 Maven 的 OSGi 部署包?

java - 将 3x3 井字游戏转换为 5x5 井字游戏

java - 看不到滚动条和滚动 Pane 中的所有元素

java - 是否可以在 Java 中调用另一个类的 main 方法并返回调用代码?

canvas - 如何以不锯齿的方式绘制由多条线段组成的曲线

mp3 - 在我的网站上播放 mp3