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

我只想执行一项简单的任务。 (我是一个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:“无法从输入流创建音频流”。 我的问题是,我做错了什么? (因为我清楚地看到这个代码在youtubevideo中工作,我使用了相同的代码。请帮助。再一次,我是新手);

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

而是使用基于Java声音的Clip来播放音频。 查看信息。 工作实例页面 。

注意

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

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

小费

还要更改表单的代码:

 catch (Exception e) { .. 

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