JVLC - Integração entre Java e VLC player - Problemas na interface

Estou implementando uma aplicação Java que tem como um dos requisitos a exibição de vídeos (nos mais diversos formatos). Assim, fiz um protótipo utilizando JMF e conversão de arquivos (para o formato MPEG-1) de vídeo para posterior exibição. Como protótipo funcionou, mas para a aplicação real eu tive que ir atrás de alternativas mais robustas que o JMF. Acabei encontrando VLC player (iniciativa do projeto videolan) e a biblioteca JVLC que faz a interface entre aplicações Java e o player citado…

Encontrie um código na internet que mostrava o funcionamento da coisa toda. Com base nele fiz modificações para testar algumas funcionalidades. O código abaixo exibe o vídeo selecionado pelo usuário, por exemplo…Todavia, estou com um problema na dinâmica da interface gráfica. Eu preciso que minha área de exibição do vídeo seja redimensionada cada vez que seu container for redimensionado e isto não ocorre…

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import org.videolan.jvlc.*;

public class VLCPlayerFrame extends Frame implements ActionListener, ComponentListener
{

  private JPanel jvcc;
  public JVLC jvlc;
  private Playlist playlist;
  public Canvas jvcanvas;
  public JButton btnAbrirArquivo;

  public VLCPlayerFrame(String[] args) 
  {
    initComponents(args);
  }

  private void initComponents(String[] args) 
  {
    jvcc = new JPanel();
    jvcanvas = new java.awt.Canvas();
    jvcanvas.setSize(500, 500);
    jvcc.setSize(this.getWidth(), this.getHeight());
    jvcc.add(jvcanvas);

    String[] arg = new String[4];
    arg[0] = "--intf=dummy";
    arg[1] = "--ignore-config";
    arg[2] = "--no-plugins-cache";
    arg[3] = "--plugin-path=plugins";

    jvlc = new JVLC(arg);

    playlist = new Playlist(jvlc);

    setLayout(new BorderLayout());
    add(jvcc, BorderLayout.CENTER);
    
    btnAbrirArquivo = new JButton("Abrir");
    btnAbrirArquivo.addActionListener(this);
    add(btnAbrirArquivo, BorderLayout.SOUTH);

    pack();
  }

  void showFileChooser() 
  {
    JFileChooser chooser = new JFileChooser();

    int returnVal = chooser.showOpenDialog(this);
    if (returnVal == JFileChooser.APPROVE_OPTION) 
    {
      jvlc.setVideoOutput(jvcanvas);
      try 
      {
        playlist.add(chooser.getSelectedFile().getAbsolutePath(), "selected file");
        playlist.play();
      } 
      catch (Exception ex) 
      {
        ex.printStackTrace();
        JOptionPane.showMessageDialog(null, ex.getMessage(), "Error", JOptionPane.OK_OPTION);
      }
    }
  }
  
  public void actionPerformed(ActionEvent evt)
  {
      showFileChooser();
  }
  
  public void componentResized(ComponentEvent e)
  {
      jvcc.setSize(this.getWidth(), this.getHeight());
      jvcanvas.setSize(this.getWidth(), this.getHeight());
      
      jvcc.repaint();
      jvcanvas.repaint();
      
      jvlc.setVideoOutput(jvcanvas);
  }
  
  public void componentHidden(ComponentEvent e) {}
  
  public void componentMoved(ComponentEvent e){}
  
  public void componentShown(ComponentEvent e){}
}

Se, por exemplo, na linha em que tenho “jvcanvas.setSize(500, 500);” eu setar o valor relativo das dimensões do conteiner com, ou ajustar o tamanho no listener de redimensionamento do container o vídeo não é exibido…

Alguém já trabalhou com essa biblioteca? Entende dessas particularidades?

Eu estava em dúvida em qual tópico do fórum postar (pois envolve frameworks, interface gráfica e bibliotecas nativas), por isso acabei postando aqui…

http://trac.videolan.org/jvlc/browser/tags/jvlc-0.0.8/ReparentResizeExample.java

Estranho…Na última versão da biblioteca JVLC não existe um componente utilizado neste exemplo citado. O nome do componente é JVLCCanvas.

Já não sei o que fazer, bicho…

Ninguém sabe me dizer?

.

.