2013-10-25 306 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