JVLC help

Microsoft Windows specific usage questions
Forum rules
Please post only Windows specific questions in this forum category. If you don't know where to post, please read the different forums' rules. Thanks.
mkeuschn
Blank Cone
Blank Cone
Posts: 16
Joined: 10 Apr 2007 19:30

JVLC help

Postby mkeuschn » 10 Apr 2007 19:41

First I have a question. Are there anywhere installation instructions for JVLC under windows?

Second:
I try to open more than one jvlc instance. The problem is, that the player opens every player in a own window and when I open 5 or more players, jvlc generates me less than I expected. Have anyone a idea?

Code: Select all

package gui; import javax.swing.JFrame; public class JVLCMain{ public static void main (String[] args) { JFrame.setDefaultLookAndFeelDecorated( true ); WorkingFrame wf = new WorkingFrame(); wf.setVisible(true); } }

Code: Select all

package gui; import java.awt.GridBagConstraints; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JFrame; import javax.swing.JInternalFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.plaf.InternalFrameUI; import javax.swing.plaf.basic.BasicInternalFrameUI; import org.videolan.jvlc.JVLC; import org.videolan.jvlc.JVLCCanvas; import org.videolan.jvlc.VLCException; public class WorkingFrame extends JFrame{ private static final long serialVersionUID = 1587534065141936424L; private JInternalFrame jif01_; private JInternalFrame jif02_; private JInternalFrame jif03_; private JInternalFrame jif04_; private JInternalFrame jif05_; private JInternalFrame jif06_; private JInternalFrame jif07_; private JInternalFrame jif08_; private JInternalFrame jif09_; private JInternalFrame jif10_; private JInternalFrame jif11_; private JInternalFrame jif12_; // public JVLCCanvas topPlayer_; // public JVLCCanvas leftPlayer_; // public JVLCCanvas rightPlayer_; public JVLCCanvas bottomPlayer_; // public JVLCCanvas middlePlayer_; public JVLCCanvas webcamPlayer_; public String topVideo_ = "file:///E:/SWP-Roboter/workspace/t-en.mpg"; public String leftVideo_ = "file:///E:/SWP-Roboter/workspace/l-bdb.mpg"; public String rightVideo_ = "file:///E:/SWP-Roboter/workspace/r-ehn.mpg"; public String bottomVideo_ = "file:///E:/SWP-Roboter/workspace/b-bdb.mpg"; public String stream_ = "udp://@224.0.0.1:4240"; private JMenuBar jmb_; public WorkingFrame() { this.addKeyListener(new ControlKeyListener(this)); this.jif01_ = new JInternalFrame(); this.jif02_ = new JInternalFrame(); this.jif03_ = new JInternalFrame(); this.jif04_ = new JInternalFrame(); this.jif05_ = new JInternalFrame(); this.jif06_ = new JInternalFrame(); this.jif07_ = new JInternalFrame(); this.jif08_ = new JInternalFrame(); this.jif09_ = new JInternalFrame(); this.jif10_ = new JInternalFrame(); this.jif11_ = new JInternalFrame(); this.jif12_ = new JInternalFrame(); // this.topPlayer_ = new JVLCCanvas(); // this.leftPlayer_ = new JVLCCanvas(); // this.middlePlayer_ = new JVLCCanvas(); // this.rightPlayer_ = new JVLCCanvas(); this.bottomPlayer_ = new JVLCCanvas(); this.webcamPlayer_= new JVLCCanvas(); this.jmb_ = new JMenuBar(); this.jmb_.add(new JMenu("Open")); this.jmb_.add(new JMenu("File")); this.jmb_.add(new JMenu("Login")); this.setJMenuBar(this.jmb_); this.initComponents(); this.addFrame(); } public void initComponents() { GridBagConstraints gridBagConstraints; this.getContentPane().setLayout(new java.awt.GridBagLayout()); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); // first row this.jif01_.setVisible(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.ipadx = 160; gridBagConstraints.ipady = 120; InternalFrameUI ui01 = this.jif01_.getUI(); ((BasicInternalFrameUI)ui01).setNorthPane(null); this.jif01_.setBorder(null); getContentPane().add(this.jif01_, gridBagConstraints); this.jif02_.setVisible(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 0; gridBagConstraints.ipadx = 160; gridBagConstraints.ipady = 120; InternalFrameUI ui02 = this.jif02_.getUI(); ((BasicInternalFrameUI)ui02).setNorthPane(null); this.jif02_.setBorder(null); getContentPane().add(this.jif02_, gridBagConstraints); this.jif03_.setVisible(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 0; gridBagConstraints.ipadx = 160; gridBagConstraints.ipady = 120; InternalFrameUI ui03 = this.jif03_.getUI(); ((BasicInternalFrameUI)ui03).setNorthPane(null); this.jif03_.setBorder(null); getContentPane().add(this.jif03_, gridBagConstraints); this.jif04_.setVisible(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 0; gridBagConstraints.ipadx = 160; gridBagConstraints.ipady = 120; InternalFrameUI ui04 = this.jif04_.getUI(); ((BasicInternalFrameUI)ui04).setNorthPane(null); this.jif04_.setBorder(null); getContentPane().add(this.jif04_, gridBagConstraints); // second row this.jif05_.setVisible(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.ipadx = 160; gridBagConstraints.ipady = 120; InternalFrameUI ui05 = this.jif05_.getUI(); ((BasicInternalFrameUI)ui05).setNorthPane(null); this.jif05_.setBorder(null); getContentPane().add(this.jif05_, gridBagConstraints); this.jif06_.setVisible(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; gridBagConstraints.ipadx = 320; gridBagConstraints.ipady = 240; InternalFrameUI ui06 = this.jif06_.getUI(); ((BasicInternalFrameUI)ui06).setNorthPane(null); this.jif06_.setBorder(null); getContentPane().add(this.jif06_, gridBagConstraints); this.jif07_.setVisible(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 1; gridBagConstraints.ipadx = 160; gridBagConstraints.ipady = 120; InternalFrameUI ui07 = this.jif07_.getUI(); ((BasicInternalFrameUI)ui07).setNorthPane(null); this.jif07_.setBorder(null); getContentPane().add(this.jif07_, gridBagConstraints); this.jif08_.setVisible(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 1; gridBagConstraints.ipadx = 160; gridBagConstraints.ipady = 120; InternalFrameUI ui08 = this.jif08_.getUI(); ((BasicInternalFrameUI)ui08).setNorthPane(null); this.jif08_.setBorder(null); getContentPane().add(this.jif08_, gridBagConstraints); // third row this.jif09_.setVisible(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.ipadx = 160; gridBagConstraints.ipady = 120; InternalFrameUI ui09 = this.jif09_.getUI(); ((BasicInternalFrameUI)ui09).setNorthPane(null); this.jif09_.setBorder(null); getContentPane().add(this.jif09_, gridBagConstraints); this.jif10_.setVisible(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 2; gridBagConstraints.ipadx = 160; gridBagConstraints.ipady = 120; InternalFrameUI ui10 = this.jif10_.getUI(); ((BasicInternalFrameUI)ui10).setNorthPane(null); this.jif10_.setBorder(null); getContentPane().add(this.jif10_, gridBagConstraints); this.jif11_.setVisible(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 2; gridBagConstraints.ipadx = 160; gridBagConstraints.ipady = 120; InternalFrameUI ui11 = this.jif11_.getUI(); ((BasicInternalFrameUI)ui11).setNorthPane(null); this.jif11_.setBorder(null); getContentPane().add(this.jif11_, gridBagConstraints); this.jif12_.setVisible(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 2; gridBagConstraints.ipadx = 160; gridBagConstraints.ipady = 120; InternalFrameUI ui12 = this.jif12_.getUI(); ((BasicInternalFrameUI)ui12).setNorthPane(null); this.jif12_.setBorder(null); getContentPane().add(this.jif12_, gridBagConstraints); pack(); } public void addFrame() { // JVLCCanvas jvlcc01 = new JVLCCanvas(); // this.jif02_.add(jvlcc01); // JVLC jvlc01 = jvlcc01.getJVLC(); // jvlc01.setMute(true); // jvlc01.playlist.add(file2, "1"); // jvlc01.playlist.play(-1, null); // this.jif02_.add(this.topPlayer_); // JVLC jvlc01 = this.topPlayer_.getJVLC(); // jvlc01.playlist.add(this.stream_, "1"); // jvlc01.playlist.play(-1, null); // // this.jif05_.add(this.leftPlayer_); // JVLC jvlc02 = this.leftPlayer_.getJVLC(); // jvlc02.playlist.add(this.stream_, "2"); // jvlc02.playlist.play(-1, null); // // this.jif06_.add(this.middlePlayer_); // JVLC jvlc03 = this.middlePlayer_.getJVLC(); // jvlc03.playlist.add(this.stream_, "3"); // jvlc03.playlist.play(-1, null); // // this.jif07_.add(this.rightPlayer_); // JVLC jvlc04 = this.rightPlayer_.getJVLC(); // jvlc04.playlist.add(this.stream_, "4"); // jvlc04.playlist.play(-1, null); this.jif10_.add(this.bottomPlayer_); JVLC jvlc05 = this.bottomPlayer_.getJVLC(); try { jvlc05.playlist.add(this.topVideo_, "5"); jvlc05.playlist.play(-1, null); } catch (VLCException e) { // TODO Auto-generated catch block e.printStackTrace(); } this.jif04_.add(this.webcamPlayer_); JVLC jvlc06 = this.webcamPlayer_.getJVLC(); try { jvlc06.playlist.add("dshow:// :dshow-vdev=\"Philips PCVC680 VGA-Kamera (Video, USB)\"", "6"); jvlc06.playlist.play(-1, null); } catch (VLCException e) { // TODO Auto-generated catch block e.printStackTrace(); } this.jif04_.addMouseListener(new VideoControlMouseListener("WebcamPlayer",this)); this.webcamPlayer_.addMouseListener(new VideoControlMouseListener("WebcamPlayer",this)); this.jif02_.addMouseListener(new VideoControlMouseListener("TopPlayer",this)); Control cntrl = new Control(this); cntrl.start(); cntrl.setVisible(true); this.jif12_.add(cntrl); } /** * KeyListener * @author songoku * TODO Implement Socket transmitting */ class ControlKeyListener implements KeyListener { private WorkingFrame wf_; public ControlKeyListener(WorkingFrame wf){ this.wf_ = wf; } public void keyPressed(KeyEvent e) { // TODO Auto-generated method stub System.out.println("keyPressed: " + e.getKeyCode()); if (e.getKeyCode() == 38) { System.out.println("keyPressed: forward"); } else if (e.getKeyCode() == 37) { System.out.println("keyPressed: left"); } else if (e.getKeyCode() == 39) { System.out.println("keyPressed: right"); } else if (e.getKeyCode() == 40) { System.out.println("keyPressed: back"); } this.wf_.requestFocus(); } public void keyReleased(KeyEvent e) { // TODO Auto-generated method stub System.out.println("keyReleased: " + e.getKeyCode()); if (e.getKeyCode() == 38) { System.out.println("keyReleased: forward"); } else if (e.getKeyCode() == 37) { System.out.println("keyReleased: left"); } else if (e.getKeyCode() == 39) { System.out.println("keyReleased: right"); } else if (e.getKeyCode() == 40) { System.out.println("keyReleased: back"); } this.wf_.requestFocus(); } public void keyTyped(KeyEvent e) { // TODO Auto-generated method stub System.out.println("keyTyped: " + e.getKeyCode()); this.wf_.requestFocus(); } } /** * MouseListener * @author songoku * TODO Implementation not ready */ public class VideoControlMouseListener implements MouseListener { private WorkingFrame wf_; private String title_; public VideoControlMouseListener(String title, WorkingFrame wf) { this.title_ = title; this.wf_ = wf; } public void mouseClicked(MouseEvent arg0) { System.out.println("mouseClicked: " + this.title_); this.wf_.requestFocus(); } public void mouseEntered(MouseEvent arg0) { System.out.println("mouseEntered: " + this.title_); this.wf_.requestFocus(); } public void mouseExited(MouseEvent arg0) { System.out.println("mouseExited: " + this.title_); this.wf_.requestFocus(); } public void mousePressed(MouseEvent arg0) { System.out.println("mousePressed: " + this.title_); this.wf_.requestFocus(); } public void mouseReleased(MouseEvent arg0) { System.out.println("mouseReleased: " + this.title_); this.wf_.requestFocus(); } } }

Code: Select all

package gui; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JInternalFrame; import javax.swing.plaf.InternalFrameUI; import javax.swing.plaf.basic.BasicInternalFrameUI; import org.videolan.jvlc.VLCException; public class Control extends JInternalFrame{ private static final long serialVersionUID = 9110558782732101855L; public WorkingFrame wf_; public Control (WorkingFrame wf) { this.wf_ = wf; InternalFrameUI ui = this.getUI(); ((BasicInternalFrameUI)ui).setNorthPane(null); this.setBorder(null); } public void start () { GridBagConstraints gbc = null; this.getContentPane().setLayout(new GridBagLayout()); JButton forward = new JButton("^"); forward.addActionListener(new ControlActionListener(this.wf_, "forward")); gbc = new GridBagConstraints(); gbc.gridx = 1; gbc.gridy = 0; this.getContentPane().add(forward,gbc); JButton left = new JButton("<"); left.addActionListener(new ControlActionListener(this.wf_, "left")); gbc = new GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 1; this.getContentPane().add(left,gbc); JButton right = new JButton(">"); right.addActionListener(new ControlActionListener(this.wf_, "right")); gbc = new GridBagConstraints(); gbc.gridx = 2; gbc.gridy = 1; this.getContentPane().add(right,gbc); JButton back = new JButton("v"); back.addActionListener(new ControlActionListener(this.wf_, "back")); gbc = new GridBagConstraints(); gbc.gridx = 1; gbc.gridy = 1; this.getContentPane().add(back,gbc); } private class ControlActionListener implements ActionListener { private WorkingFrame wf_; private String direction_; public ControlActionListener (WorkingFrame wf, String direction) { this.wf_ = wf; this.direction_ = direction; } public void actionPerformed(ActionEvent arg0) { System.out.println(this.direction_); if (this.direction_.compareTo("forward") == 0) { try { this.wf_.webcamPlayer_.getJVLC().playlist.stop(); this.wf_.webcamPlayer_.getJVLC().playlist.add(this.wf_.stream_, "1"); this.wf_.webcamPlayer_.getJVLC().playlist.play(-1,null); this.wf_.requestFocus(); } catch (VLCException e) { // TODO Auto-generated catch block e.printStackTrace(); } }else if (this.direction_.compareTo("left") == 0) { this.wf_.requestFocus(); }else if (this.direction_.compareTo("right") == 0) { this.wf_.requestFocus(); }else if (this.direction_.compareTo("back") == 0) { this.wf_.requestFocus(); } } } }

adanecito
Cone that earned his stripes
Cone that earned his stripes
Posts: 151
Joined: 06 Mar 2007 17:59

Postby adanecito » 10 Apr 2007 21:27

There are issues with JVLC for Windows. I posted the issues and the fixes for the dev team but no response yet.
Check the message in this forum by looking at:
viewtopic.php?t=34775

Hopefully these will be addressed soon.

-Tony

mkeuschn
Blank Cone
Blank Cone
Posts: 16
Joined: 10 Apr 2007 19:30

Postby mkeuschn » 25 Apr 2007 11:24

Thank you for your reply.

Now I am switsched to linux (Ubuntu).

I got the following error when I start 2 players at the same time.

Code: Select all

Exception in thread "AWT-EventQueue-0" org.videolan.jvlc.VLCException: No active video output at org.videolan.jvlc.Video._paint(Native Method) at org.videolan.jvlc.Video.paint(Video.java:112) at org.videolan.jvlc.JVLCCanvas.paint(JVLCCanvas.java:37) at sun.awt.RepaintArea.paintComponent(RepaintArea.java:248) at sun.awt.X11.XRepaintArea.paintComponent(XRepaintArea.java:56) at sun.awt.RepaintArea.paint(RepaintArea.java:224) at sun.awt.X11.XComponentPeer.handleEvent(XComponentPeer.java:645) at java.awt.Component.dispatchEventImpl(Component.java:4044) at java.awt.Component.dispatchEvent(Component.java:3803) at java.awt.EventQueue.dispatchEvent(EventQueue.java:463) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149) at java.awt.EventDispatchThread.run(EventDispatchThread.java:110) Exception in thread "AWT-EventQueue-0" org.videolan.jvlc.VLCException: No active video output at org.videolan.jvlc.Video._paint(Native Method) at org.videolan.jvlc.Video.paint(Video.java:112) at org.videolan.jvlc.JVLCCanvas.paint(JVLCCanvas.java:37) at sun.awt.RepaintArea.paintComponent(RepaintArea.java:248) at sun.awt.X11.XRepaintArea.paintComponent(XRepaintArea.java:56) at sun.awt.RepaintArea.paint(RepaintArea.java:224) at sun.awt.X11.XComponentPeer.handleEvent(XComponentPeer.java:645) at java.awt.Component.dispatchEventImpl(Component.java:4044) at java.awt.Component.dispatchEvent(Component.java:3803) at java.awt.EventQueue.dispatchEvent(EventQueue.java:463) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149) at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

mkeuschn
Blank Cone
Blank Cone
Posts: 16
Joined: 10 Apr 2007 19:30

Postby mkeuschn » 25 Apr 2007 14:15

After I checked out the new SVN Version the vlc player crashed with a Segmentation fault.

Code: Select all

VLC media player 0.9.0-svn Grishenko Segmentation fault (core dumped)

adanecito
Cone that earned his stripes
Cone that earned his stripes
Posts: 151
Joined: 06 Mar 2007 17:59

Postby adanecito » 25 Apr 2007 15:45

Hi,

The issues I menioned were fixed recently and in the build. Support for multiple JInternalFrame instances is not working (video vanishes but sound continues) is being looked at. I am working with a few others to resolve the issue but it looks as if linked to getting invalid windows handles.
We are also working on trying to get the build to work cleanly for the java bindings we have a minor issues with it right now.
1 - Need to add --CLASSPATH="./" to the javac line to find packages
2 - running make a second time causes error about multiple targets related to .po files.

Regards,
-Tony


Return to “VLC media player for Windows Troubleshooting”

Who is online

Users browsing this forum: No registered users and 85 guests