使用Sun.audio在java中播放音频

时间:2014-01-23 11:32:37

标签: java audio media-player javasound sun

我只想执行一项简单的任务。 (我是一个java新手)。我想在单击按钮时播放音频剪辑。 这是我的代码的一部分(我通过从Youtube复制教程完全做到了。)

private void btnPlayActionPerformed(java.awt.event.ActionEvent evt) {                                         
InputStream in;
try{
      in=new FileInputStream(new File("C:\\Users\\Matt\\Documents\\dong.wav"));
      AudioStream timeupsound=new AudioStream(in);
      AudioPlayer.player.start(timeupsound);

}
catch(Exception e){
    JOptionPane.showMessageDialog(null, e);
}

}                                     

但问题是,这不起作用。 它抛出并抛出IOException:“无法从输入流创建音频流”。 我的问题是,我做错了什么? (因为我清楚地看到这段代码在youtube视频中有效,我使用了相同的代码。请帮助。再一次,我是新手);

1 个答案:

答案 0 :(得分:2)

sun包类应该在编译时引起一些信息性警告。听从他们。不要在该包层次结构中使用类。它们没有文档,不能保证从一个Java版本到下一个版本,并且根本不可用于非Oracle JRE。

而是使用基于Java Sound的Clip来播放音频。有关工作示例,请参阅info. page

注意

可能是WAV以Java Sound不支持的格式编码。媒体格式通常是“容器格式”,可以使用任意数量的不同编解码器进行编码。 WAV很可能在内部使用更具压缩性的编解码器,如MP3或OGG。

我不知道OGG格式的服务提供程序接口,但如果它们被编码为MP3,您可能能够使用MP3 SPI来使其工作。查看信息。上面链接的页面了解详情。

提示

同时更改表单的代码:

catch (Exception e) { .. 

catch (Exception e) { 
    e.printStackTrace(); // very informative! ...