Pessoal estou com uma dificuldade…criei um player onde ezecuta uma lista de videos e queria colocar imagens sobre esse componente video…exemplo…colocar uma marca da globo feito aparece na televisao sobre o video…Alguem pode me ajudar??Abaixo segue o meu codigo ok…
[color=red]
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Panel;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.FilenameFilter;
import java.util.Vector;
import javax.media.ControllerEvent;
import javax.media.ControllerListener;
import javax.media.EndOfMediaEvent;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.Player;
import javax.media.RealizeCompleteEvent;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
public class MyPlayerNovo extends Frame implements ControllerListener {
static int numeroVideoTocando = 0;
static Vector<File>minhaPlayList;
static String diretorio = "C://Documents and Settings//rodrigo.santos//Desktop//Videos";
private Player player;
private Panel panel;
public static void main(String[] args) {
new MyPlayerNovo();
}
public MyPlayerNovo() {
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
if (player != null) {
player.close();
}
System.exit(0);
}
});
setTitle("Sophia Player");
panel = new Panel();
panel.setLayout(new BorderLayout());
add(BorderLayout.CENTER, panel);
setVisible(true);
tocarVideo();
}
// metodo que cada vez que é chamado toca o prox video
public void tocarVideo(){
try {
minhaPlayList = leArquivosDiretorio(diretorio);
System.out.println(minhaPlayList);
// executa video da vez!!!
// O File do arquivo a ser tocado: minhaPlayList.get(numeroVideoTocando)
MediaLocator ml = new MediaLocator(minhaPlayList.get(numeroVideoTocando).toURI().toURL());
System.out.println(ml);
player = Manager.createPlayer(ml);
player.addControllerListener(this);
player.realize();
player.start();
// quando parar, pega outro valido (verifica se o proximo video existe)
numeroVideoTocando = pegaProximoIndiceDeVideoValido(minhaPlayList, numeroVideoTocando);
} catch (Exception x) {
x.printStackTrace();
}
}
public void controllerUpdate(ControllerEvent ce) {
Component visual, control;
if (ce instanceof RealizeCompleteEvent) {
if ((visual = player.getVisualComponent()) != null) {
panel.add("Center", visual);
}
if ((control = player.getControlPanelComponent()) != null) {
// panel.add(“South”, control);
}
// Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
// setBounds(0,0,screenSize.width, screenSize.height);
setSize(400,400);
setLocationRelativeTo(null);
validate();
} else if (ce instanceof EndOfMediaEvent) {
// toda vez que chega no fim do video ele chama o prox metodo
System.out.println("\nProximoVideo");
Component c = this.player.getVisualComponent();
if (null != c) {
this.panel.remove©;
tocarVideo();
}
}
}
public static int pegaProximoIndiceDeVideoValido(Vector<File>minhaPlayList, int indiceatual){
int indiceValido = 0;
int i = indiceatual;
while(true){
i++;
if(i<minhaPlayList.size()){
if(minhaPlayList.get(i).exists()){
indiceValido = i;
break;
}
}
else{
indiceValido = 0;
break;
}
}
return indiceValido;
}
public static Vector<File> leArquivosDiretorio(String pathDiretorio) {
// TODO Auto-generated method stub
File diretorio = new File(pathDiretorio);
Vector<File>vectorDeArquivos = new Vector<File>();
if(diretorio.isDirectory()){
FilenameFilter mpg = new FiltroJava();
File[] files = diretorio.listFiles(mpg);
for (int i = 0; i < files.length; i++) {
vectorDeArquivos.add(files[i]);
}
}
return vectorDeArquivos;
}
}
[/color]