public void grabarVideo(){
//se inicializa un player
Player player = Manager.createPlayer("capture://video");
player.realize();
//se obtiene el control del video del player
VideoControl videoControl =
(VideoControl)(player.getControl("VideoControl"));
videoControl.initDisplayMode(
VideoControl.USE_DIRECT_VIDEO, this);
videoControl.setDisplayFullScreen(true);
videoControl.setVisible(true);
player.start(); //comienza la grabación
/* Se obtiene el control de grabación y se graba
por 10 segundos Los resultados son guardados en
un array de Bytes, pude guardarse también
en un archivo
*/
ByteArrayOutputStream output = new ByteArrayOutputStream();
RecordControl recordControl =
(RecordControl)(player.getControl("RecordControl"));
recordControl.setRecordStream(output);
recordControl.startRecord();
try {
Thread.sleep(10000);//graba durante 10 segundos
} catch (InterruptedException ex) {
//manejo de la excepción
}
try {
//se llama al commit para finalizar la grabación
recordControl.commit();
output.flush(); //flush de los datos dentro del buffer
} catch (IOException ex) {
//manejo de la excepción
}
//se cargan los bytes en el array video
byte[] video = output.toByteArray();
}
El problema con la grabación de video (y audio también) en J2ME es que hay que parar la grabación para poder obtener los datos de la misma. O sea, hasta no llamar al método commit(), no se cargan los bytes en el buffer, pero a su vez, éste método llama implícitamente al método stopRecording() por lo que la grabación se ve interrumpida.
Mostrando entradas con la etiqueta j2me. Mostrar todas las entradas
Mostrando entradas con la etiqueta j2me. Mostrar todas las entradas
viernes, 2 de mayo de 2008
Grabar video en J2ME
Snippet para grabar video en J2ME:
Suscribirse a:
Entradas (Atom)