我只想执行一项简单的任务。 (我是一个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视频中有效,我使用了相同的代码。请帮助。再一次,我是新手);
答案 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! ...