tetxi
Posts: 8
Joined: Tue Mar 12, 2013 11:02 am

JAVA - Reproducir Video

Tue Mar 12, 2013 11:34 am

Buenos dias,

Tengo la necesidad de realizar un programa en Java que en un momento dado reproduzca automáticamente un video.
Desde Windows utilizo la librería javax.media pero veo que en la raspberrypi no funciona esta librería.
Alguien tiene una idea de cómo lo puedo realizar?

Grácias!

User avatar
patolin
Posts: 122
Joined: Mon Jan 09, 2012 3:25 pm
Location: Cuenca, Ecuador
Contact: Website

Re: JAVA - Reproducir Video

Thu Mar 14, 2013 3:21 am

tiene que ser específicamente en Java? para python existen varias alternativas para lo que necesitas
Patricio Reinoso - www.patolin.com

tetxi
Posts: 8
Joined: Tue Mar 12, 2013 11:02 am

Re: JAVA - Reproducir Video

Wed Mar 20, 2013 12:23 am

Hola,

Quiero adaptar un programa que ya tengo en Java para que reproduzca los videos en la raspberry pi. NEcesito utilizar Java para no tener que reescribir todo el código de nuevo en Python, que es la solución que me comentas.

Gracias.

calomar
Posts: 41
Joined: Thu Dec 27, 2012 9:02 am

Re: JAVA - Reproducir Video

Wed Mar 20, 2013 11:33 am

Desde Java puedes ejecutar procesos, por lo que deberías de poder abrir omxplayer
Sería algo como:

String [] comando = {"omxplayer","-o","hdmi", "Alvin_y_las_ardillas.avi"};
try{
Process p = Runtime.getRuntime().exec (comando);
}
catch (Exception e){
System.out.println("la has cagao");
e.printStackTrace();
}

tetxi
Posts: 8
Joined: Tue Mar 12, 2013 11:02 am

Re: JAVA - Reproducir Video

Wed Mar 20, 2013 11:40 am

He intentado llamar al proceso omxplayer desde Java, pero se me queda bloqueado sin que el video se reproduzca.
El código ejecutado es´:
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;


public class execom {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

//lectura del visualitzador
String vis = "/usr/bin/omxplayer.bin";
//Lectura video
String vid = "video1.mp4";


try
{
String osName = System.getProperty("os.name" );
String[] cmd = new String[7];

cmd[0]="/bin/bash";
cmd[1]="exec";
cmd[2]="-c";
cmd[3]=vis;
cmd[4]=vid;
cmd[5]=">/dev/null";
cmd[6]="2>/dev/null";


Runtime rt = Runtime.getRuntime();
System.out.println("Sistema OPeratiu: "+osName);

System.out.println("Executant.. " + cmd[0] + " " + cmd[1]
+ " " + cmd[2]+" "+cmd[3]+" "+cmd[4]);

Process proc = rt.exec(cmd);
System.out.println("rt.exec realitzat de: "+cmd);
// any error message?
StreamGobbler errorGobbler = new
StreamGobbler(proc.getErrorStream(), "ERROR");

// any output?
StreamGobbler outputGobbler = new
StreamGobbler(proc.getInputStream(), "OUTPUT");

// kick them off
errorGobbler.start();
outputGobbler.start();

// any error???
System.out.println("Iniciem el waitFor()...");
int exitVal = proc.waitFor();
System.out.println("ExitValue: " + exitVal);
} catch (Throwable t)
{
t.printStackTrace();
}
}
}

tetxi
Posts: 8
Joined: Tue Mar 12, 2013 11:02 am

Re: JAVA - Reproducir Video

Wed Mar 20, 2013 11:44 am

calomar wrote:Desde Java puedes ejecutar procesos, por lo que deberías de poder abrir omxplayer
Sería algo como:

String [] comando = {"omxplayer","-o","hdmi", "Alvin_y_las_ardillas.avi"};
try{
Process p = Runtime.getRuntime().exec (comando);
}
catch (Exception e){
System.out.println("la has cagao");
e.printStackTrace();
}

Este código a ti te funciona?? Yo no lo consigo.
Muchas gracias por tu ayuda!

calomar
Posts: 41
Joined: Thu Dec 27, 2012 9:02 am

Re: JAVA - Reproducir Video

Wed Mar 20, 2013 1:41 pm

No lo he podido probar, simplemente es el código que habría que poner en cualquier distribución linux, aunque me has picado. Lo mismo pruebo
Entiendo que se te queda bloqueado después del primer print:

System.out.println("Executant.. " + cmd[0] + " " + cmd[1]+ " " + cmd[2]+" "+cmd[3]+" "+cmd[4]);
Process proc = rt.exec(cmd); //<-- JUSTO AQUI
System.out.println("rt.exec realitzat de: "+cmd);

¿Lo estás ejecutando con las X abiertas o desde consola? ¿como lo tienes conectado a la pantalla? ¿HDMI?
¿Puedes probar a ejecutar cualquier proceso sin argumentos? por emplo ejecuta un "ls"

Return to “Español”