Ich stocherte ein bisschen im Internet herum, hatte aber kein Glück. Weiß jemand, ob einer existiert?Gibt es einen WMA-Spi für Javasound?
Antwort
Offenbar ist die Antwort nein. Ich habe dort draußen nichts gefunden.
Verwenden Quicktime API für die Durchführung einer solchen Sache,
i mein Problem mit gelöst haben diese quickTime.jar
Sie dieses Dienstprogramm von apple.com
herunterladen.
Ich bin mir bewusst, dass Sie nach einer .jar-Datei suchen, um einfach reinzugehen und Unterstützung für .wma-Dateien zu bieten, aber diese Lösung hat mir die Unterstützung für .wma-Dateien gebracht und es war nicht viel komplizierter als das Einwerfen ein neues Glas. Das ist technisch gesehen kein SPI, aber da es so etwas nicht zu geben scheint, dachte ich, eine einfache Alternative könnte nützlich sein, um gepostet zu haben.
Von this answer fand ich meine Richtung. Bevor Sie jedoch zu JAVE gehen und sehen, worum es geht, gebe ich Ihnen einen Code, damit Sie sehen können, wie viel ich schreiben musste, um eine WMA-Datei zu konvertieren und abzuspielen. Alles, was JAVE benötigt, erfordert eine Instanz der Encoder-Klasse.
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();
}
Wenn Sie auf Windows 7 oder höher, können Sie MFSampledSP versuchen. Wenn Sie abenteuerlustig sind und andere Plattformen als Windows unterstützen müssen, könnten Sie versuchen, FFSampledSP und das zugehörige Upstream-Projekt zu ändern.
Ah, aber der Grund, warum ich nach einem Spi suche, ist, weil ich bereits fast jedes andere Medienformat in meinem System durch javasound unterstützt und bearbeitet habe. Daher wäre das Hinzufügen von WMA-Unterstützung genauso einfach wie das Ziehen und Ablegen der .jar-Datei. Ich möchte nicht wirklich eine volle API. Trotzdem danke! – Nico