你好我有这个代码打开声音wav文件,但它没有工作
import java.io.IOException;
import java.net.URL;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.Mixer;
import javax.sound.sampled.UnsupportedAudioFileException;
import sun.applet.Main;
public class Sound1 {
public static Mixer mixer;
public static Clip clip;
public static void main(String[] args) {
// TODO code application logic here
Mixer.Info[] mixinfo =AudioSystem.getMixerInfo();
for(Mixer.Info info :mixinfo)
{
System.out.println(info.getName()+"...."+info.getDescription());
mixer = AudioSystem.getMixer(mixinfo[0]);
}
DataLine.Info datainfo =new DataLine.Info(Clip.class, null);
try
{
clip =(Clip)mixer.getLine(datainfo);
}
catch(LineUnavailableException lue)
{
lue.printStackTrace();
}
try
{
URL soundurl = Main.class.getResource("1.wav");
AudioInputStream audiostream = `enter code here`AudioSystem.getAudioInputStream(soundurl);
clip.open(audiostream);
}
catch(LineUnavailableException lue)
{
lue.printStackTrace();
}
catch(IOException ioe)
{
ioe.printStackTrace();
}
clip.start();
do
{
try { Thread.sleep(50);}
catch (InterruptedException ie){ ie.printStackTrace();}
}while(clip.isActive());
}
}
我无法运行该程序有错误请我需要帮助我认为这里的错误" URL soundurl = Main.class.getResource(" 1.wav");"虽然我将i.wav文件添加到项目
答案 0 :(得分:0)
并非所有调音台都可用于音频输出(有些只是音频输入)。在你的代码中,你总是选择Mixer.Info []数组中的第一个混音器,它可能不支持音频输出。您可以通过致电
来查看mixer.isLineSupported(datainfo);
如果您不是真的需要调音台(在播放需要同步的多个音频文件时通常需要它),您可以播放一个简单的.wav文件
public void play(File file) throws LineUnavailableException{
Clip clip=AudioSystem.getClip();
clip.open(AudioSystem.getAudioInputStream(file));
clip.loop(1);
}