PDF de programación - Sonido en Java.

Imágen de pdf Sonido en Java.

Sonido en Java.gráfica de visualizaciones

Publicado el 16 de Julio del 2017
648 visualizaciones desde el 16 de Julio del 2017
79,1 KB
19 paginas
Creado hace 23a (08/02/2001)
Sonido en JAVA.

Escrito por:
Escrito por:

Carlos Prades del Valle.
Carlos Prades del Valle.

Versión 1.0.0.
Versión 1.0.0.

Enero de 2001.
Enero de 2001.

Sonido en Java.

Versión 1.0.1 Enero 2000

Historial del documento.

Versión Autor

Resumen de la modificación.

1.0.0.
1.0.1.

CPV
CPV

Guía para el programador de sonido con Java.
Revisión de estilos para subirlo a la web.

Fecha
19−12−2000
31−01−2001

Autores del documento.

CPV:

Carlos Prades del Valle.

Resumen.

e−mail: [email protected]
Sitio web: http://cprades.eresmas.com/

Este documento es una guía para el programador que quiere empezar a utilizar el

sonido que le proporciona el sistema multimedia que utiliza.

Palabras relacionadas.

Java, programación, sonido, procesado, voz, señal, api.

Carlos Prades del Valle.

Pag 2 de 19

Sonido en Java.

Índice.

Versión 1.0.1 Enero 2000

1INTRODUCCIÓN.
___________________________________________________________7

2CLASES PRINCIPALES.
_____________________________________________________8

2.1FORMATOS DE AUDIO.________________________________________________________8

2.2ARQUITECTURA DE LOS SISTEMAS.________________________________________________9

2.3MIXERS__________________________________________________________________9

2.4LINES__________________________________________________________________10

2.5CLASES DATALINE_________________________________________________________11

3ACCESO A LOS COMPONENTES DEL SISTEMA

_____________________________12

3.1OBTENCIÓN DE LOS RECURSOS._________________________________________________13

4REPRODUCCIÓN DE SONIDO.

______________________________________________15

4.1REPRODUCCIÓN DEL SONIDO MEDIANTE SOURCEDATALINE_____________________________15

4.2SINCRONIZACIÓN DE LÍNEAS.__________________________________________________17

4.3CAPTURA DE SONIDO._______________________________________________________17

4.4PROCESADO DE LA SEÑAL.____________________________________________________18

Carlos Prades del Valle.

Pag 3 de 19

Sonido en Java.

Versión 1.0.1 Enero 2000

Glosario.
API: Application Program Interface. Es la interfaz proporcionada por un sistema al
programador para poder acceder a los servicios de ese sistema.

Array: Es un grupo de datos de un tipo determinado puestos uno a continuación de
otro. Coincide con los tipos de datos array de Java.

Java: Lenguaje de programación orientado a objetos.

JDK: Java Development Kit. Es el entorno de desarrollo para Java proporcionado por
Sun.

MIDI: Estándar para el almacenamiento y transporte de música para o desde un
sintetizador.

Package: Paquete. Agrupamiento especificado por el programador de clases con
características comunes.

Sun: Empresa norteamericana que desarrolló el lenguaje de programación Java.

Thread: Hilo de ejecución.

Carlos Prades del Valle.

Pag 4 de 19

Sonido en Java.

Versión 1.0.1 Enero 2000

Ámbito y alcance del documento.

Este documento pretende mostrar cómo utilizar las herramientas del API de Java

para la adquisición el manejo y la reproducción de sonido, el texto se limita a esta

función quedando fuera del propósito el almacenamiento, la síntesis de sonido, el

tratamiento de secuencias MIDI, el tratamiento (reconocimiento y síntesis) de la señal

de voz, etc. No es una descripción detallada de todos las clases, métodos y variables que

proporciona el sistema sino una guía útil para el programador que pretenda iniciarse en

el procesado de sonido con Java o cómo texto de referencia para el programador más

experto.

La versión de Java que soporta este API como aquí se cuenta es la 2 y el entono

de desarrollo utilizado es el JDK 1.3.

Este documento presupone que el lector tiene un conocimiento medio sobre el

lenguaje Java siendo recomendable un conocimiento básico del API más común. Por

otro lado el lector deberá tener un conocimiento mínimo sobre las características de la

señal de sonido y el tratamiento digital de la señal.

Carlos Prades del Valle.

Pag 5 de 19

Sonido en Java.

Versión 1.0.1 Enero 2000

Convenciones del documento.

En este documento se intentará traducir los términos en inglés siempre que sea

posible, exceptuando aquellos términos en inglés que, por el uso común en nuestro

idioma, no necesitan tal traducción. Estos vocablos están escritos en cursiva. Por otro

lado los nombres propios de las compañías comerciales o de las marcas de sus

productos también son puestos en cursiva.

La parte de código y los ejemplos están escritos con fuente de letra Curier.

Cuando se habla de una clase o de un objeto se considera un nombre propio por lo que

no se traduce, aún así en determinados casos se especifica la traducción de forma

aclaratoria. Los nombre de paquetes y ficheros también se consideran nombres propios,

pero al no pertenecer exclusivamente al código se muestran con fuente de letra normal

en cursiva (como productos software que son).

Carlos Prades del Valle.

Pag 6 de 19

Sonido en Java.

Versión 1.0.1 Enero 2000

1 Introducción.
El API de Java dedicada al sonido es la llamada Java Sound API proporcionado

ya con el entorno de desarrollo de Sun. Este API se compone de 4 packages (paquetes):

javax.sound.sampled.

javax.sound.sampled.spi.

javax.sound.midi.

javax.sound.midi.spi.

El primero, javax.sound.sampled, contiene las clases necesarias para el manejo

del sonido muestreado, esto incluye la captura, la mezcla y la reproducción de audio,
proporcionando además algún control y efecto sobre el sonido así como interfaces para

el almacenamiento, será el package estudiado en este documento. El package

javax.sound.midi proporciona las interfaces de síntesis, secuenciamiento y transporte

MIDI. Los packages javax.sound.sampled.spi y javax.sound.midi.spi proporcionan una

interfaz para los desarrolladores de servicios basados en las interfaces anteriores.

Carlos Prades del Valle.

Pag 7 de 19

Sonido en Java.

Versión 1.0.1 Enero 2000

2 Clases principales.
Como paso previo es necesario contar cómo funcionan algunos de los objetos de

javax.sound.sampled necesarios para

comprender después

cada uno de

los

procedimientos a seguir.

2.1 Formatos de audio.

Los objetos de la clase AudioFormat definen el formato de una señal de

audio, esto es, el número de canales, el número de bits por muestra, frecuencia de

muestreo, el tamaño de la trama de voz y su frecuencia, formato de almacenamiento de
los datos en memoria (big endian o little endian) y el tipo de codificación (ley a, ley µ,
clase
PCM). Para guardar

codificación hay un objeto de

la

el

tipo de

AudioFormat.Encoding con esta información. Obteniendo este objeto se puede

mirar si es igual (función boolean equals(Object) ) a una de las constantes

definidas en la clase AudioFormat.Encoding (ALAW, ULAW, PCM_SIGNED,

PCM_UNSIGNED). La clase AudioFormat aparte del constructor, al que hay que

pasarle los parámetros para la iniciación de las variables, tiene los siguientes métodos:

int getChanels();
AudioFormat.Encoding getEncoding(); /* Devuelve objeto con información

/* Devuelve el número de canales. */

sobre el tipo de codificación.*/

/* Devuelve la frecuencia de trama de la señal.

float getFrameRate();
*/
int getFrameSize();
float getSampleRate();
int getSampleSizeInBits(); /* Devuelve el tamaño en bits de cada

/* Devuelve tamaño de la trama en bytes. */
/* Devuelve la frecuencia de muestreo. */

muestra de sonido. */

boolean isBigEndian(); /* Devuelve true alineamiento big endian y

false little endian. */

Además de los métodos boolean maches(AudioFormat) y String

toString() y los heredados de la clase Object.

Por otro lado existe la clase AudioFileFormat para definir el formato de un

fichero de audio, esta clase permite utilizar las clases AudioImputStream y

AudioOutputStream, que heredan de ImputStream y OutputStream

respectivamente, permitiendo usar los métodos estándar para la lectura y escritura del

audio en ficheros. El funcionamiento de estas clases se escapa al ámbito de este

documento.

Carlos Prades del Valle.

Pag 8 de 19

Sonido en Java.

Versión 1.0.1 Enero 2000

2.2 Arquitectura de los sistemas.

La arquitectura de los sistemas de audio de audio se basa en mezcladores, clase

Mixer, que son dispositivos a los que llegan líneas, objetos de clase Line, procesan

los datos y salen otros objetos de clase Line.

La jerarquía de estas clases es la siguiente:

Object
Line
Port
Mixer
DataLine
SourceDataLine
TargetDataLine
Clip

2.3 Mixers

Como se puede ver los Mixer (mezcladores) son unos casos particulares de los

Lines. Estos Mixer son dispositivos hardware o software por lo que pueden ser

proporcionados por el sistema. Los objetos Mixer contienen un objeto de la clase

Mixer.Info con información del tipo de Mixer. Los métodos de la clase Mixer

son los siguientes:

Line getLine(Line.Info); /* Obtiene, si exixte, un Line del tipo

indicado en el parámetro. */

int getMaxLines(Line.Info);

/* Indica el numero de lineas que se

Mixer.Info getMixerInfo();

/* Obtiene el objeto que indica el

pueden tener de un tipo dado.*/

tipo de Mixer que es. */

Line.Info [] getSourceLineInfo(); /* Obtiene array con información de

los SourceLines disponibles. */

Line.Info [] getSourceLineInfo(Line.Info); /* Array con información de

los SourceLines de un tipo. */
Line [] getSourceLines(); /* Obtiene array con los SouceLines

disponibles. */

Line.Info [] getTargetLineInfo(); /* Obtiene array con información de

los TargetLines disponibles. */

Line.Info [] getTargetLineInfo(Line.Info); /* Array con información de

Line [] getTargetLines(); /* Obtiene
  • Links de descarga
http://lwp-l.com/pdf5407

Comentarios de: Sonido en Java. (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad