我想在达到特定时间时在视频顶部添加JTextField。我正在使用此代码:
frame.setLocation(100, 100);
frame.setSize(0, 0);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//frame.setLayout(null);
Canvas c = new Canvas();
c.setBackground(Color.black);
JPanel p = new JPanel();
p.setLayout(new BorderLayout());
p.add(c, BorderLayout.CENTER);
frame.add(p, BorderLayout.CENTER);
mediaURL = "D:\\Desktop\\movie.mp4";
MediaPlayerFactory mediaPlayerFactory = new MediaPlayerFactory();
mediaPlayer = mediaPlayerFactory.newEmbeddedMediaPlayer(new Win32FullScreenStrategy(frame));
mediaPlayer.setVideoSurface(mediaPlayerFactory.newVideoSurface(c));
scoresFrame.setVisible(true);
mediaPlayer.toggleFullScreen();
mediaPlayer.setEnableMouseInputHandling(false);
mediaPlayer.setEnableKeyInputHandling(true);
mediaPlayer.prepareMedia(mediaURL);
//mediaPlayer.setRepeat(true);
mediaPlayer.play();
mediaPlayer.addMediaPlayerEventListener(new MediaPlayerEventAdapter() {
public void timeChanged (MediaPlayer mediaPlayer , long time) {
if (time > 1000 && time < 1500) {
frame.setLayout(null);
mediaPlayer.pause();
JTextField text = new JTextField("test");
text.setBounds(250, 370, 50, 50);
frame.add(text);
}
}
});
JTextField根本没有出现。问题是什么?以及在特定时间暂停视频的任何其他建议?因为使用这段代码:
public void timeChanged (MediaPlayer mediaPlayer , long time) {
if (time > 1000 && time < 1500) {
}
}
看起来不是最好的方式。 谢谢你的帮助。
答案 0 :(得分:1)
您不能混合轻量级组件(您的JTextField)和重量级组件(您用于vlcj的Canvas)。
你有两个选择......