Problema con Java y JMF

rojito

Hola, pues el caso esque estoy "intentando" hacer una aplicación en la que puedas compartir video, en plan curiosidad.

Ya he conseguido acceder a la cam del pc (JMF), para ello he creado una clase (panelVideo) que hereda de jPanel y que cuando uso el método comenzar() me muestra el contenido de la cam en el mismo panel.

El problema lo tengo ahora, cuando intento enviar mi clase panelVideo por socket mediante ObjectInputStream/ObjectOutputStream, me tira la siguiente excepción:

spoiler
Clase cliente
Clase panelVideo
Clase servidor
Clase hebra del servidor

Decir que, porsupuesto, tengo la clase panelVideo en el proyecto cliente y que es idéntica a la del servidor.

Gracias!

edit: también admito sugerencias para hacerlo de otra forma :)

Buffoncete

seguro que la clase es panelVideo y no PanelVideo ?

pertenecen al mismo package ? si no es así, has importado la clase ?

rojito

El nombre de la clase está bien, y al instanciarla también, en cuanto a lo del paquete están en el mismo.

Gracias!!

LOc0

Hola. java.lang.ClassNotFoundException: panelVideo y dices que tienes todo en su sitio e importado.

No pones código... No sé si tendrá que ver, pero imagino que estarás enviando así

ObjectOutputStream bufferObjeto = new ObjectOutputStream (socket.getOutputStream());

bufferObjeto.writeObject(mipanel);

y recibiendo así:

ObjectInputStream bufferObjeto = new ObjectInputStream (socket.getInputStream());

panelVideo mipanel = (panelVideo)bufferObjeto.readObject();

y que panelVideo IMPLEMENTA la interfaz SERIALIZABLE

¿NO?

Salu2 ;)

rojito

Hola Loco, eso lo tengo justo como bien pones excepto al recibir, que al método readObject no le paso "mipanel", he mirado la API pero no encuentro el readObject() con un parámetro.

Gracias tio! :)

LOc0

Es que se me coló. Te escribí el de arriba y al hacer copy paste se me olvidó quitar el del read.

No sé por qué te salta la excepción de clase no encontrada, la verdad. Pero creo que conceptualmente no es correcto hacer lo que quieres así. Es decir, tú le estás enviando al cliente un clon de un objeto PLAYER (sí, un mipanel, pero al final lo que interesa es el PLAYER) que está obteniendo sus datos de un recurso local que es la cámara pero que el cliente no tiene. Lo ideal sería poder obtener un flujo de datos de vídeo "crudo" de la cámara en el servidor, meterlo en un búffer y enviarle sse búffer al cliente para que su player "lea" de ahí, pero desconozco cómo funciona internamente el player ya que no he usado JMF, lo siento :(

http://www.csee.umbc.edu/pmundur/courses/CMSC691C/lab5-kurose-ross.html

Busca en Google RTSP SERVER

Salu2 ;)

MTX_Anubis

¿cuál es esta clase "GUIClienteHora"?

¿Son dos proyectos diferentes o tienes todo en el mismo proyecto?

rojito

La clase GUIClienteHora no es nada, esque el proyecto se llamaba así y después lo cambié pero cuando subí la excepción aún no lo había hecho.

En cuanto a lo de si son diferentes proyectos, si. Cada uno está separado y tiene su propia interfaz.

MTX_Anubis

y tienes bien importadas las clases entre proyectos y todo eso?

rojito

Gracias a todos los que me habéis respondido! Acabo de ver la luz, ya he conseguido enviar vídeo de la CAM a través de RTP, un poco lioso pero se puede!! :)

LOc0

No #10, GRACIAS y bye NO :P Lo mínimo es que cuentes qué has hecho y cómo (aunque sea esquemáticamente).

Salu2 ;)

Usuarios habituales

  • LOc0
  • rojito
  • MTX_Anubis
  • Buffoncete