• Domingo 22 de Diciembre de 2024, 04:06

Autor Tema:  Problema con Audio Usando JMF  (Leído 1571 veces)

Henrypunk

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Problema con Audio Usando JMF
« en: Martes 21 de Julio de 2009, 19:59 »
0
Hola, espero me puedan ayuda con el problema que tengo. Sucede que quería hacer una aplicación en la cual pueda grabar en una archivo de audio lo que yo hable por el micrófono por un tiempo predeterminado, busco con san google varias paginas leí mucho de la documentacion de la API y entonces quise hacer un ejemplo sencillo para entender mejor lo que había leído, acá el codigo :
Código: Java
  1.  
  2. public Processor record() {
  3.  
  4.         Processor p = null;
  5.         CaptureDeviceInfo di = null;
  6.        
  7.         AudioFormat aF = new AudioFormat( AudioFormat.LINEAR );
  8.  
  9.         //tampoco funciona CaptureDeviceManager.getDeviceList();
  10.         Vector dL= CaptureDeviceManager.getDeviceList( aF );
  11.  
  12.         System.out.println( "AF: " + aF );
  13.         System.out.println( "DeviceList " + dL );
  14.        
  15.         if( dL.size() > 0 )
  16.             di = (CaptureDeviceInfo)dL.firstElement();
  17.          else System.exit(-1);
  18.  
  19.          try{
  20.              p = (Processor) Manager.createProcessor( di.getLocator() );
  21.         }
  22.         catch ( Exception e ) {
  23.             e.printStackTrace();
  24.         }
  25.        
  26.         return p;
  27.        
  28.     }
  29.  
  30.  

El problema que tengo es con CaptureDeviceManager.getDeviceList(); y CaptureDeviceManager.getDeviceList( new AudioFomat(..) ); en ambos casos lo que me devuelve es un objeto vector vació y no se porque?? serán problemas de los drivers?? pero yo probe mi micrófono y parlantes en otras aplicaciones y funcionan sin problemas. En tal caso si hay alguien que me pueda ayudar quisiera saber tambien que parametro pasar a javax.media.CaptureDeviceManager.getDevice("DirectSoundCapture"); intente con "DirectSoundCapture" y me devuelve un null.  :(  alguien sabe de algún otro parámetro?  :unsure:

Espero me puedan ayudar y Gracias por al atencion prestada, Salu2.

gophlb

  • Visitante
Re: Problema con Audio Usando JMF
« Respuesta #1 en: Jueves 30 de Julio de 2009, 18:19 »
0
no se si te resolvera algo, pero en un foro de Sun comentan tu mismo problema y la respuesta "ganadora" tiene pintas de ser:

"When running from the promt without specifying a classpath, the classpath from the environment variables is used. Check it with echo %classpath%
This probably points to the jmf-installation directory and the jmf.jar in the installation directory.

When you run from an ide or from a jar-file you have probably just pointed out jmf.jar in your classpath and not the jmf installation directory.
The program will then not find the jmf.properties file and the getDeviceList will return an empty list."

el thread completo (hay que leerselo porque dicen algo mas por arriba) en:
forums.sun.com/thread.jspa?threadID=525026

Henrypunk

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Problema con Audio Usando JMF
« Respuesta #2 en: Domingo 2 de Agosto de 2009, 02:02 »
0
Cita de: "gophlb"
no se si te resolvera algo, pero en un foro de Sun comentan tu mismo problema y la respuesta "ganadora" tiene pintas de ser:

"When running from the promt without specifying a classpath, the classpath from the environment variables is used. Check it with echo %classpath%
This probably points to the jmf-installation directory and the jmf.jar in the installation directory.

When you run from an ide or from a jar-file you have probably just pointed out jmf.jar in your classpath and not the jmf installation directory.
The program will then not find the jmf.properties file and the getDeviceList will return an empty list."

el thread completo (hay que leerselo porque dicen algo mas por arriba) en:
forums.sun.com/thread.jspa?threadID=525026

Bueno gophlb Muchas gracias tu ayuda me soluciono el problema  :beer:  tan solo era "empaquetar" todos las clases de los jar en una solo jar, pero bueno ahora el problema que tengo es en esta linea =(
Código: Java
  1. p = (Processor) Manager.createProcessor( di.getLocator() );
  2.  

me arroja una excepción
Código: Java
  1.  
  2.        javax.media.NoProcessorException: Cannot find a Processor for: javasound://44100
  3.         at javax.media.Manager.createProcessorForContent(Manager.java:1663)
  4.         at javax.media.Manager.createProcessor(Manager.java:627)
  5.  
  6.  

ni idea de porque me sale  :rolleyes:  :(  espero me puedas dar otra ayuda  :P

gophlb

  • Visitante
Re: Problema con Audio Usando JMF
« Respuesta #3 en: Domingo 2 de Agosto de 2009, 10:24 »
0
seamos sinceros: nunca he visto nada de jmf :)

buscando y rebuscando me he encontrado esto:
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Capture media data

Media capture is another important task in JMF programming. You can capture media data using a capture device such as a microphone or a video camera. It can then be processed and rendered, or stored in a media format. To capture media data, you need to:

   1. Locate the capture device you want to use by querying the CaptureDeviceManager
   2. Obtain a CaptureDeviceInfo object for the device
   3. Get a MediaLocator from the CaptureDeviceInfo object and use it to create a DataSource
   4. Create either a Player or a Processor using the DataSource
   5. Start the Player or Processor to begin the capture process
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
lo del datasource lo he visto en varios ejemplos y creo que en tu codigo no aparece.
el manual lo explica muy por encima aqui: javaworld.com/jw-04-2001/jw-0406-jmf1.html?page=4

si no funciona, no tengo ni idea :D
algo he leido por ahi relacionado con "drivers no soportados", pero tampoco me hagas demasiado caso porque lo he leido de pasada.

dicho todo esto, logicamente yo me retiro de este hilo y paso a lector :) mucha suerte con ello