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