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.
- Compila y estudia el ejemplo.
- 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.
- 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)
- 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.
- 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í.
- 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.
- 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).
- 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).
- 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
|