Home UC3M
Home IT

Práctica 6

JMF: Captura de medios

OBJETIVOS

En esta práctica vamos a jugar un poco con las funciones de captura de medios de Java Media Framework. En concreto, vamos trabajar con la captura de sonido.

 

ENUNCIADO

Partiremos de una clase que nos proporciona la infraestructura básica para capturar sonido:

Este programa permite crear un archivo mp3 de sonido a partir de lo que se captura por un micrófono. El programa limita la duración de la grabación a  1 MB.

  1. Compila y estudia el ejemplo.
  2. Modifica el programa para que en función de un parámetro de entrada, se pueda grabar en ".wav" en vez de mp3. (-f mp3 o -f wav)
    ¿Qué ocurre con el tiempo de grabación?
    PISTA:
    • Observa el método setOutputFormat se puede modificar para que produzca formato WAV con el siguiente descriptor: FileTypeDescriptor(FileTypeDescriptor.MPEG_AUDIO)
    • Necesitas modificar el procesado de la cadena de entrada para que acepte diferentes tipos de formato.
  3. Añade un parámetro de entrada para cambiar el tamaño máximo de grabación. Por ejemplo "-t 3" para limitar la grabación a 3 MB.
    PISTA:
    • Para resolver este problema tan sólo es necesario modificar el método startRecording(), haciendo que en vez de grabar 1MB, lea dicha cantidad por la línea de comandos.
    • También necesita modificar el procesado de la cadena de entrada, para que pueda recibir dichos argumentos.

 

ERRORES HABITUALES EN LA CONFIGURACIÓN DE ECLIPSE (Linux)

  1. No se ha creado un proyecto para la práctica. Para cada práctica tenéis que crear un proyecto nuevo en vuestro workspace. En este proyecto añadís los .java del esqueleto y desarrolláis vuestra parte.
  2. Se ha creado un proyecto para la práctica, pero tenemos más de un proyecto abierto. Aseguraos de cerrar todos los proyectos de las prácticas anteriores. De lo contrario, las configuraciones de los proyectos interfieren entre sí.
  3. El proyecto asociado a la práctica está configurado en modo compatibilidad Java 1.4. Tiene que ser Java 1.5. (right click en la carpeta de proyecto -> Properties -> Java Compiler). Aseguraos de que se aplica la configuración si la cambiáis.
  4. Estáis usando la máquina virtual de Java 1.4. Tiene que ser la de Java 1.5. En el laboratorio hay instaladas distintas versiones del SDK de Java por requisitos de las distintas asignaturas que se imparten. Vosotros tenéis que usar el JDK 1.5. (Window->Preferences->Java->Installed JRE, ahí teneis que tener una entrada para el jdk 1.5 que podéis encontrar en /usr/local y tiene que estar marcado para que se use por defecto).
  5. No se ha incluido la librería de JMF en el classpath. JMF no forma parte de la distribución estándar de Java. Para poder trabajar con ella, hay que añadirla al classpath. (right click en la carpeta de proyecto -> Properties -> Java Build Path, ahí, en el tab Libraries, añadís jmf.jar como External JAR).
  6. No están configuradas las librerías binarias (.so) de JMF para Linux. Para poder acceder a la mayoría de los codecs de JMF en Linux, son necesarias una serie de librerías dinámicas que no están instaladas en el laboratorio. Son las que están disponibles para bajar en la página de la Práctica 3 (jmf-lib.tgz). Para configurarlas: right click en la carpeta del proyecto -> Run As... -> Run Configurations, y en la configuración de vuestra aplicación, en el tab Environment habría que añadir la variable LD_LIBRARY_PATH y apuntarla al directorio donde tengais las librerías.

 

ENLACES