2013-10-25 266 views
1

我应该如何在JavaFX中循环播放视频? 我试图一次又一次地播放视频,所以我在许多地方寻找一些示例代码,我不能让它工作!JavaFX - 播放循环视频

这是不为我工作:

public MyMediaPlayer(){ 
    media = new Media(getVideo()); 
    mediaPlayer = new MediaPlayer(media); 
    mediaView = new MediaView(mediaPlayer); 
    startMediaPlayer(); 
} 

private String getVideo() { 
    return getClass().getResource("videos/limbo.mp4").toString(); 
} 

public final void startMediaPlayer() { 
    mediaPlayer.setMute(true); 
    mediaPlayer.setCycleCount(javafx.scene.media.MediaPlayer.INDEFINITE); //this is the line that should do the magic, but it doesn't... 
    mediaPlayer.play(); 
} 
+0

我发现了问题,但没有解决:事情是,我有一个包含MyMediaPlayer并与所有UI一个BorderPane的StackPane。但是当视频结束时,StackPane不会更新,因此它会在视频的最后一帧中冻结。我怎么能解决这个问题? –

回答

1

我下面的作品(视频永远循环)。我无法复制你的问题。

import javafx.application.Application; 
import javafx.scene.*; 
import javafx.scene.media.*; 
import javafx.stage.Stage; 

public class VideoPlayerExample extends Application { 
    public static void main(String[] args) throws Exception { launch(args); } 
    @Override public void start(final Stage stage) throws Exception { 
    final MediaPlayer oracleVid = new MediaPlayer(
     new Media("http://download.oracle.com/otndocs/products/javafx/oow2010-2.flv") 
    ); 
    stage.setScene(new Scene(new Group(new MediaView(oracleVid)), 540, 208)); 
    stage.show(); 

    oracleVid.setMute(true); 
    oracleVid.setRate(20); 

    oracleVid.setCycleCount(MediaPlayer.INDEFINITE); 

    oracleVid.play(); 
    } 
} 

我的Java 7下我,这里是行不通的。 。 。该问题似乎是MP4格式。

如果无法播放MP4文件,或者:

  1. 的MP4不以格式的JavaFX理解编码(该JavaFX 2.2 Media javadoc详细介绍了允许的格式)。

    OR

  2. 您不必在计算机上安装相应的编解码器,让MP4文件进行解码。请参阅JavaFX 2.2 Media system requirements以了解您需要在计算机上安装哪些内容以显示MP4文件的信息。

+0

如果我不想创建VideoPlayer作为我的主应用程序?如果我只是想将它用作背景?你如何在你写的课程以外分享视频? –

+0

啊,并且上面的示例没有开始播放... –

+0

示例适用于我Win7,Java8b112。您在评论中提出的其他问题我不明白,但它们似乎与问题的标题无关,所以请在新问题中提问。 – jewelsea