2012-04-12 18 views

Respuesta

1

Aparentemente la respuesta es no. No he podido encontrar nada por ahí.

0

Uso Quicktime API para hacer tal cosa,

he resuelto mi problema al utilizar este quickTime.jar

se puede descargar esta utilidad desde apple.com.

+1

Ah, pero la razón por la que estoy buscando un spi es porque ya tengo casi todos los formatos de medios compatibles y trabajando en mi sistema a través de javasound. Entonces, agregar soporte WMA sería tan fácil como arrastrar y soltar el .jar. Realmente no quiero una API completa. ¡Gracias! – Nico

0

Me doy cuenta de que está buscando un archivo .jar para agregar y brindar soporte para archivos .wma, pero esta solución fue la forma en que obtuve soporte para archivos .wma y no fue mucho más complicado que ingresar un nuevo frasco Esto no es técnicamente un SPI, pero como parece que no existe tal cosa, pensé que podría ser útil publicar una alternativa simple.

De this answer Encontré mi dirección. Sin embargo, antes de sumergirse en JAVE y ver de qué se trata, proporcionaré una longitud de código para que pueda ver cuánto tuve que escribir para convertir y reproducir un archivo wma. Todo lo que hace JAVE requiere que uses una instancia de la clase Encoder.

try { 
    EncodingAttributes attr = new EncodingAttributes(); 
    attr.setAudioAttributes(new AudioAttributes()); //default values 
    attr.setVideoAttributes(new VideoAttributes()); //default values 
    attr.setFormat("wav"); //this is the target format I am trying to achieve 
    //b.wma is a file I brought to the project 
    File wma = new File("Resources\\b.wma"); 
    //target.wav is the created file I'll achieve after the encode, which gets used to make a Clip 
    File target = new File("Resources\\target.wav"); 
    Encoder encoder = new Encoder(); 
    //this will show you all supported encoding/decoding formats 
    //String[] list = encoder.getSupportedEncodingFormats(); 
    //String[] list = encoder.getSupportedDecodingFormats() 
    encoder.encode(wma, target, attr); 
    AudioInputStream is = AudioSystem.getAudioInputStream(target); 
    Clip clip = AudioSystem.getClip(); 
    clip.open(is); 
    clip.setFramePosition(0); 
    clip.start(); 

} catch (IllegalArgumentException | EncoderException e) { 
    e.printStackTrace(); 
} catch (UnsupportedAudioFileException e) { 
    e.printStackTrace(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} catch (LineUnavailableException e) { 
    e.printStackTrace(); 
} 
0

Si estás en Windows 7 o posterior, es posible que desee probar MFSampledSP.

Si eres aventurero y necesitas soportar otras plataformas aparte de Windows, puedes intentar modificar FFSampledSP y su proyecto ascendente.