在java程序中使用音乐

我正在尝试为java程序创建背景音乐的方法,但是当我点击播放按钮时它显示了IO excedption错误。

package javaentertainment; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.FileInputStream; import java.io.IOException; import javax.swing.*; import sun.audio.AudioData; import sun.audio.AudioPlayer; import sun.audio.AudioStream; public class Music { public static void main(String args[]) { JFrame frame=new JFrame(); frame.setSize(100,100); JButton button=new JButton("PLAY"); frame.add(button); button.addActionListener(new AL()); frame.show(); } public static class AL implements ActionListener { public void actionPerformed(ActionEvent e) { music(); } } public static void music() { AudioPlayer MGP=AudioPlayer.player; AudioStream BGM; AudioData MD; ContinousAudioDataStream loop=null; try { BGM = new AudioStream(new FileInputStream("Vision.wmv")); MD=BGM.getData(); loop=new ContinousAudioDataStream(MD); } catch (IOException ex) { System.out.println(ex); } MGP.start(loop); // word loop was underlined by netbeans } } 

当我运行程序并单击播放时,它显示以下错误,java.io.IOException:无法从输入流创建音频流

您应该使用JMF(Java Media Framework)。 为了您的兴趣:可以在此处找到可接受格式的列表。

简而言之,它支持AIFF,AVI,GSM,MVR,MID,MPG,MP2,MOV,AU和WAV文件。

但是这里有一个工作方式:

另外,如果在JMFRegistry中添加mime设置以将Windows Media内容(例如.asf和.wmv)映射到内容类型“video / mpeg”,JMF实际上可以播放Windows Media或任何其他DirectShow文件(只有文件 – http不会工作)。

如果Java可以处理Windows Media格式样本,我会感到惊讶 – 尝试将.wmv转换为.wav文件然后查看它是否有效。

刚刚得到了这个。

 java.io.IOException: could not create AudioData object 

从源[1]看来,这意味着“你的音频文件大小> 1 MB”并且由于某种原因它不喜欢它。 也许是一个错误[?]他们不适应这个。

如果您希望循环适用于大型文件,则可以使用JMF代替建议使用JMF。

[1] http://www.docjar.com/docs/api/sun/audio/AudioStream.html#getData