我正在制作一些迷你Java游戏,我想知道如何在我的程序中添加声音/音乐。我在youtube上观看了一段视频并按照提供的代码,但是我收到以下错误: java.io.IOException:无法从输入流
创建音频流我注意到其他人用相同的代码问了同样的问题,但答案没有帮助。这是代码:
import sun.audio.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
public class Project1
{
public static void main(String[] args)
{
JFrame frame = new JFrame();
frame.setSize(200,200);
frame.setLocationRelativeTo(null);
JButton button = new JButton("Click me");
frame.add(button);
button.addActionListener(new AL());
frame.setVisible(true);
}
public static class AL implements ActionListener{
public final void actionPerformed(ActionEvent e){
music();
}
}
public static void music()
{
AudioPlayer MGP = AudioPlayer.player;
AudioStream BGM;
AudioData MD;
ContinuousAudioDataStream loop = null;
try
{
InputStream test = new FileInputStream("C:\\Music1.wmv");
BGM = new AudioStream(test);
AudioPlayer.player.start(BGM);
//MD = BGM.getData();
//loop = new ContinuousAudioDataStream(MD);
}
catch(FileNotFoundException e){
System.out.print(e.toString());
}
catch(IOException error)
{
System.out.print(error.toString());
}
MGP.start(loop);
}
}
答案 0 :(得分:1)
InputStream test = new FileInputStream("C:\\Music1.wmv");
Java Sound不支持WMV&我没有听说过支持它的服务提供商接口。您需要将声音转换为较旧的文件类型。
答案 1 :(得分:0)
使用AudioInputStream将音频文件作为输入,请参阅this
答案 2 :(得分:0)
尝试使用:
InputStream test = new FileInputStream("C:\\Music1.au");
或者:
InputStream test = new FileInputStream("C:\\Music1.wav");
只需将您的文件转换为其中一个音频文件即可。