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
Video Can';t播放mp4转换文件-JavaFX2.1_Video_Media Player_Javafx 2_Converter - Fatal编程技术网

Video Can';t播放mp4转换文件-JavaFX2.1

Video Can';t播放mp4转换文件-JavaFX2.1,video,media-player,javafx-2,converter,Video,Media Player,Javafx 2,Converter,我已将.mov视频转换为.mp4,但当我在javafx应用程序中播放视频时,它无法工作,我可以听到视频文件的音频,但没有图片!可能.mp4的编解码器不正确!有什么想法或解决办法吗 更新 使用相同的代码,我在相同的条件下播放了另一个mp4视频(Platforme,JFX版本,…),因此我得出结论,我对这个mp4转换文件有问题,ie我用来转换mov文件的软件没有生成JFX 2.1支持的适当mp4格式。下面的代码示例演示如何在JavaFX中播放h.264编码的mp4视频 import javafx.a

我已将
.mov
视频转换为
.mp4
,但当我在javafx应用程序中播放视频时,它无法工作,我可以听到视频文件的音频,但没有图片!可能.mp4的编解码器不正确!有什么想法或解决办法吗

更新


使用相同的代码,我在相同的条件下播放了另一个mp4视频(Platforme,JFX版本,…),因此我得出结论,我对这个mp4转换文件有问题,ie我用来转换mov文件的软件没有生成JFX 2.1支持的适当mp4格式。

下面的代码示例演示如何在JavaFX中播放h.264编码的mp4视频

import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.*;
import javafx.scene.media.*;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

/** plays an mp4 video in JavaFX 2.1+ */
public class OnlineVideoPlayer extends Application {
  public static void main(String[] args) { launch(args); }
  @Override public void start(Stage stage) {
    final Label status = new Label("Init");
    MediaPlayer mediaPlayer = createMediaPlayer(
      "http://www.html5videoplayer.net/videos/toystory.mp4", 
      status
    );
    VBox layout = new VBox(10);
    layout.setAlignment(Pos.CENTER);
    layout.getChildren().addAll(new MediaView(mediaPlayer), status);
    stage.setScene(new Scene(layout, 500, 300, Color.CORNSILK));
    stage.show();
    if (mediaPlayer != null) {
      mediaPlayer.play();
    }  
  }

  /** 
   * creates a media player using a url to the media
   * and tracks the status of playing the media via the status label 
   */
  private MediaPlayer createMediaPlayer(final String url, final Label status) {
    Media hit = new Media(url);
    MediaPlayer mediaPlayer = new MediaPlayer(hit);
    mediaPlayer.setOnError(new Runnable() {
      @Override public void run() {
        status.setText("Error");
      }
    });
    mediaPlayer.setOnPlaying(new Runnable() {
      @Override public void run() {
        status.setText("Playing: " + url);
      }
    });
    mediaPlayer.setOnEndOfMedia(new Runnable() {
      @Override public void run() {
        status.setText("Done");
      }
    });
    return mediaPlayer;
  }
}
示例程序输出:(JavaFX8U72,OSX10.9.5)。

您需要确保.mp4文件是用H264编码的。MPEG4不工作

你在用什么操作系统?你用的是什么编解码器?编解码器是h.264吗?视频可以用JavaFX2.2播放吗?我使用的是xp,我已经安装了divx。对于编解码器,我正在尝试将视频转换为H264,我不知道我是否成功地做到了这一点。对于JavaFX2.2,我不知道,因为我使用的是2.1。我尝试了代码,但不断得到媒体音频格式不支持的错误。示例使用的视频已不存在,因此我正在尝试从这里创建文件,但运气不好:我更新了答案,使用了新的视频链接,播放效果很好。@jewelsea如果视频是.mp4,但编码为MPEG4,我能做些什么?