Java声音文件未播放3

时间:2015-04-10 17:10:11

标签: java audio javasound

你好我有这个代码打开声音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文件添加到项目

1 个答案:

答案 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);
}

更多信息: Accessing Audio System Resources