Foros del Web » Programación para mayores de 30 ;) » Java »

Ayuda Cliente/Servidor

Estas en el tema de Ayuda Cliente/Servidor en el foro de Java en Foros del Web. Hola! Expongo en este foro mi duda con la esperanza de que algun savio pueda ayudarme. Estoy intentando desarrollar un sistema de "videoconferencia", creo, que ...
  #1 (permalink)  
Antiguo 09/03/2010, 17:50
 
Fecha de Ingreso: marzo-2010
Mensajes: 35
Antigüedad: 14 años, 1 mes
Puntos: 1
De acuerdo Ayuda Cliente/Servidor

Hola!

Expongo en este foro mi duda con la esperanza de que algun savio pueda ayudarme.
Estoy intentando desarrollar un sistema de "videoconferencia", creo, que tendria que resultar bastante sencillo para alguien que haya trabajado con la tecnologia de JMF puesto que lo que busco hacer es simplemente, mandar una señal de video mediante el JMStudio de la JMF mediante RTP y lograr recibirlo y remitirlo en tiempo real en un unico ordenador.

Aqui tengo el codigo que de momento estoy usando:

public class video
{
static JFrame v;
static JLabel estado;
static ServerSocket socket;
static Component video,controls;
static DataSource d;
static MediaLocator u;
static Player player;


public static void main(String[] args) throws InterruptedException, CannotRealizeException, NoPlayerException
{
v = new JFrame("Servidor Video Tecnos");
v.setVisible(true);
v.setSize(450,450);
v.setResizable(false);
v.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

new video();
}


public video() throws InterruptedException, CannotRealizeException, NoPlayerException
{
JPanel p1 = new JPanel();
p1.setBackground(Color.gray);
p1.setLayout(null);
v.add(p1);
p1.setLayout(null);
JPanel p2 = new JPanel();
p1.add(p2);
p2.setBounds(5,5,435,380);
p2.setBackground(Color.black);
JPanel p3 = new JPanel();
p3.setLayout(null);
p1.add(p3);
p3.setBounds(5,389,435,30);
p3.setBackground(Color.LIGHT_GRAY);
JMenuBar barra = new JMenuBar();
p3.add(barra);
barra.setBounds(0,0,435,30);

try {

estado = new JLabel(" Abriendo Puerto");
barra.add(estado);
ServerSocket socket = new ServerSocket(22222);
Thread.sleep(1000);
estado.setText(" Abriendo Puerto.");
Thread.sleep(1000);
estado.setText(" Abriendo Puerto..");
Thread.sleep(1000);
estado.setText(" Abriendo Puerto...");
Thread.sleep(3000);

estado.setText(" Esperando conexion...");

} catch (IOException e) {

estado.setText(" Fallo al intentar establecer conexion");
}
estado.setText("Recibiendo Datos");


Thread.sleep(1000);

u = new MediaLocator("vfw://0");

try {
estado.setText("Creando Player");
player = Manager.createPlayer(u);

Component vis =player.getVisualComponent();
Component con = player.getControlPanelComponent();

p2.add(vis,con);

Thread.sleep(1000);
estado.setText("Cargando Media");
player = Manager.createProcessor(u);
Thread.sleep(1000);
estado.setText("Cargando Media.");
Thread.sleep(500);

} catch (IOException ex) {
estado.setText("Error al cargar Player");
Logger.getLogger(video.class.getName()).log(Level. SEVERE, null, ex);
} catch (NoProcessorException ex) {
estado.setText("Error al cargar Player");
Logger.getLogger(video.class.getName()).log(Level. SEVERE, null, ex);
}
estado.setText("Recibiendo Datos.");
Thread.sleep(1000);
estado.setText("Recibiendo Datos..");
Thread.sleep(1000);
estado.setText("Recibiendo Datos...");
Thread.sleep(3000);
if ( player != null)
{
player.start();
}
}


}

u = new MediaLocator("vfw://0");

en este MediaLocator tengo la url "vfw://0" porque ahora estoy trabajando en LAN y supuse que dejando la como en el JMStudio venia de serie funcionaria.

Si mirais el codigo vereis que no uso ni, RTPManager, ni SessionManager ni RTPSocket... y supongo que un enorme etc... el motivo no es que sea mas chulo que nadie,, mas bien es que no tengo ni idea de como funcionan estos...
Juro a ver estado horas y horas, por no decir dias, buscando en google... y , pese que no puedo despotricar de la informacion encontrada, de mejor calidad ultimamente, esque no consigo nada, lo unico que he conseguido a sigo que, si enciendo mi "receptor RTP" tal i como en este cofigo esta, y a la vez tengo el JMStudio capturando por mi webcam, entoncees windows me pide unos permisos para realizar la reproduccion, cuando lo acepto, me salta un error, lo pongo tambien:

java.io.IOException: Could not connect to capture device
java.io.IOException: Could not connect to capture device
Exception in thread "main" javax.media.NoPlayerException: Error instantiating class: com.sun.media.protocol.vfw.DataSource : java.io.IOException: Could not connect to capture device
at javax.media.Manager.createPlayerForContent(Manager .java:1362)
at javax.media.Manager.createPlayer(Manager.java:417)
at javaapplication1.video.<init>(video.java:108)
at javaapplication1.video.main(video.java:56)



Cuando me pego este error, encontre que del MediaLocator, podia montar un DataSource, por asi decirlo, y entonces, copie este codigo en el trozito rojo, del codigo principal. Porsupusto tambien modifique el medialocator que puse como referencia en el Player, substituyendolo por el DataSource:

DataSource a = new DataSource();
a.setLocator(u);

De ninguna manera funciona, recientemente encontrado mucho sobre RTPManager, SessionManager, RTPSocket... con lo cual, he llegado a la conclusion de que mi codigo, hecho por ahora, ha quedado bastante fuera de juego.
Entonces, mi pregunta seria, cual es la manera para desarrollar un receptor de video via RTP sabiendo seguro que la transmision se efectuara desde el JMStudio?

Necesito respuesta a esto, porfavor, si alguien puede ayudarme, porfavor que lo haga!

Muchas gracias compañeros!
SaluX:si
:D
  #2 (permalink)  
Antiguo 13/07/2010, 09:58
 
Fecha de Ingreso: abril-2010
Mensajes: 8
Antigüedad: 14 años
Puntos: 0
Respuesta: Ayuda Cliente/Servidor

Hola, no hace mucho que estoy trabajando con JMF, por lo que entiendo el error que te está marcando es que no encuentra el dispositivo de captura, en este caso la camara web, verifica con JMStudio si aparece en la lista de sipositivos de captura encontrados tu camara web.

El error también podría venir si tu S.O. es de 64 bits, el framework no lo soporta muy bien que digamos, hasta donde sé está diseñado para soportar 32 bits solamente.

Espero que esta información haya servido de algo, para programar lo que quieres puedes conultar el código que está en la página de Sun.

Saludos.
  #3 (permalink)  
Antiguo 13/07/2010, 10:00
 
Fecha de Ingreso: abril-2010
Mensajes: 8
Antigüedad: 14 años
Puntos: 0
Respuesta: Ayuda Cliente/Servidor

Hola, no hace mucho que estoy trabajando con JMF, por lo que entiendo el error que te está marcando es que no encuentra el dispositivo de captura, en este caso la camara web, una vez que no encuentra el dispositivo comienza a arrojar los demás errores, no puede crear el player, etc, verifica con JMStudio si aparece en la lista de sipositivos de captura encontrados tu camara web.

El error también podría venir si tu S.O. es de 64 bits, el framework no lo soporta muy bien que digamos, hasta donde sé está diseñado para soportar 32 bits solamente.

Espero que esta información haya servido de algo, para programar lo que quieres puedes conultar el código que está en la página de Sun.

Saludos.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:47.