2012-04-12 9 views

risposta

1

Apparentemente la risposta è no. Non sono stato in grado di trovare nulla là fuori.

0

Usa Quicktime API per fare una cosa del genere,

ho risolto il mio problema utilizzando questo quickTime.jar

è possibile scaricare questa utilità dal apple.com.

+1

Ah ma il motivo per cui sto cercando una spi è perché ho già quasi tutti gli altri formati multimediali supportati e funzionanti nel mio sistema tramite javasound. Quindi aggiungere il supporto WMA sarebbe facile come trascinare e rilasciare il .jar. Non voglio davvero una vera API. Grazie comunque! – Nico

0

Mi rendo conto che stai cercando un file .jar da inserire e fornire il supporto per i file .wma, ma questa soluzione è stata la modalità con cui ho ottenuto il supporto per i file .wma e non è stato molto più complicato di quello del rilascio un nuovo barattolo Questo non è tecnicamente un SPI, ma dal momento che sembra non esserci nulla di simile, ho pensato che una semplice alternativa potrebbe essere utile aver pubblicato.

Da this answer ho trovato la mia direzione. Prima di immergerti in JAVE e vedere di cosa si tratta, però, ti fornirò una lunghezza di codice in modo che tu possa vedere quanto ho dovuto scrivere per far convertire e riprodurre un file wma. Tutto ciò che JAVE richiede richiede l'uso di un'istanza della classe 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

Se siete su Windows 7 o versione successiva, si potrebbe desiderare di provare MFSampledSP.

Se sei avventuroso e hai bisogno di supportare altre piattaforme oltre a Windows, puoi provare a modificare FFSampledSP e il suo progetto upstream.

Problemi correlati