Olá pessoal… eu estou usando a classe de um player para tocar videos mpegs
e um JBomboBox para setar qual video é para tocar…
Só que se um video estiver tocando… e eu setar outro para tocar… eles são exibidos ao mesmo tempo… ou seja… o atual continua tocando… e o novo video entra por cima…
Gostaria de saber como remover o video atual… para depois tocar o novo video…
estou usando recursos do JMF
Quando eu chamo um video faço da seguinte forma:
PlayerSimples playerVideo = new PlayerSimples(“file:video.mpeg”);
E quando chamo o segundo faço assim:
PlayerSimples playerVideo = new PlayerSimples(“file:video.mpeg”);
Então preciso de colocar uma intrução que “pare” ou “remova” o video antes de chamar o segundo…
Obrigado a todos…!
A classe que estou usando é:
public class PlayerSimples
{
Player player;
Component componenteVisual;
Component componenteControle;
MediaLocator localizadorMidia;
PlayerSimples playerVideo;
public PlayerSimples(String nomeArquivoVideo)
{
localizadorMidia = new MediaLocator(nomeArquivoVideo);
try
{
player = Manager.createPlayer(localizadorMidia);
player.addControllerListener(new PlayerEventHandler());
player.realize();
}
catch (NoPlayerException noPlayerException)
{
noPlayerException.printStackTrace();
}
catch (IOException ioException)
{
ioException.printStackTrace();
}
}
private class PlayerEventHandler extends ControllerAdapter
{
public void realizeComplete(RealizeCompleteEvent realizeDoneEvent)
{
player.prefetch();
}
public void prefetchComplete(PrefetchCompleteEvent prefetchDoneEvent)
{
componenteVisual = player.getVisualComponent();
if (componenteVisual != null )
{
jp_painel_video.add(componenteVisual,BorderLayout.CENTER);
componenteVisual.setBounds(0,0,350,245);
}
componenteControle = player.getControlPanelComponent();
if (componenteControle != null)
{
jp_painel_video.add(componenteControle,BorderLayout.SOUTH);
componenteControle.setBounds(0,245,350,25);
}
validate();
player.start();
}
public void endOfMedia(EndOfMediaEvent mediaEndEvent)
{
player.setMediaTime(new Time(0));
player.stop();
}
}
}