首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java声音文件不是Playing3

Java声音文件不是Playing3
EN

Stack Overflow用户
提问于 2015-04-11 01:10:11
回答 1查看 43关注 0票数 0

你好,我有这个代码打开声音wav文件,但它不工作

代码语言:javascript
运行
复制
  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文件到项目

EN

回答 1

Stack Overflow用户

发布于 2015-04-14 16:44:18

并非所有混音器都可用于音频输出(有些仅用于音频输入)。在您的代码中,您总是选择Mixer.Info[]数组中的第一个混音器,它可能不支持音频输出。您可以通过调用

代码语言:javascript
运行
复制
mixer.isLineSupported(datainfo);

如果您并不真正需要混音器(在播放需要同步的多个音频文件时通常需要它),您可以使用以下命令播放一个简单的.wav文件

代码语言:javascript
运行
复制
public void play(File file) throws LineUnavailableException{
  Clip clip=AudioSystem.getClip();
  clip.open(AudioSystem.getAudioInputStream(file));
  clip.loop(1);
}

更多信息:Accessing Audio System Resources

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29567046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档