是否有javasound的WMA spi?

时间:2012-04-12 00:47:59

标签: java audio javasound wma

我在互联网上捅了一下但没有运气。有人知道是否存在吗?

4 个答案:

答案 0 :(得分:1)

显然答案是否定的。一直无法找到任何东西。

答案 1 :(得分:0)

使用 Quicktime API执行此类操作

我使用此quickTime.jar

解决了我的问题

您可以从apple.com下载此实用程序。

答案 2 :(得分:0)

我意识到你正在寻找一个.jar文件来支持.wma文件,但这个解决方案是我获得.wma文件的支持,并没有比放入一个更复杂的文件。新罐子。这在技术上不是一个SPI,但由于似乎没有这样的东西,我认为一个简单的替代方案可能对发布有用。

this answer我找到了方向。然而,在你深入JAVE并看看它是什么之前,我将提供一段代码,这样你就可以看到我需要写多少才能获得转换和播放的wma文件。 JAVE所做的一切都要求您使用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();
}

答案 3 :(得分:0)

如果您使用的是Windows 7或更高版本,则可能需要尝试MFSampledSP

如果您喜欢冒险并且需要支持除Windows之外的其他平台,您可以尝试修改FFSampledSP及其上游项目。