2

ハードディスクに存在する2つ(またはそれ以上)のビデオを再生したいのですが、MediaPlayerが自動的に次のビデオに移動するようにMediaオブジェクトを更新するにはどうすればよいですか。

4

2 に答える 2

2

今はテストできませんが、うまくいくはずです:

public MediaView createMediaView(Collection<String> urls){
    MediaView mediaView = new MediaView();
    initMediaPlayer(mediaView, urls.iterator());
    return mediaView;
}

private void initMediaPlayer(
          final MediaView mediaView, 
          final Iterator<String> urls
){
    if (urls.hasNext()){
        MediaPlayer mediaPlayer = new MediaPlayer(new Media(urls.next()));
        mediaPlayer.setAutoPlay(true);
        mediaPlayer.setOnEndOfMedia(new Runnable() {
            @Override public void run() {
                initMediaPlayer(mediaView, urls);
            }
        });
        mediaView.setMediaPlayer(mediaPlayer);
    } 
}
于 2012-09-18T17:59:06.387 に答える
1

これは、ハード ドライブからAudioPlaylist を再生するサンプル プログラムです。

このプログラムは、再生するファイルごとに新しい MediaPlayer と新しい Media を含むリストを作成することによって機能します。プログラムには単一の MediaView があり、MediaPlayer ごとに onEndOfMedia MediaView の MediaPlayer がリスト内の次のものに設定されます。jjuの再帰的な答えとほとんど同じ解決策です。

再生中のメディアを変更するには、MediaPlayer でメディアを更新しないことに注意してください (Media と MediaPlayer の間には 1:1 の対応があるため、更新する方法はありません)。代わりに、MediaView で MediaPlayer を更新します。

JavaFX の Audio と Video は両方とも MediaPlayer によって再生され、MediaView によって管理されるメディアとして表されるため、Videos の概念は Audio とほとんど同じです。

于 2012-09-18T19:32:12.463 に答える