Can';t使用clip在java中播放声音

Can';t使用clip在java中播放声音,java,eclipse,file,audio,avaudiofile,Java,Eclipse,File,Audio,Avaudiofile,我想用下面的代码在java中播放一些声音。那个声音是WAV格式的,所以我认为这段代码应该可以很好地工作,但它并没有播放声音,只是什么都没做。我的控制台上甚至没有错误。那么有人能帮我让这段代码播放声音吗。(此声音包含在我的src文件的一个包中) 您刚刚启动此线程,因此请创建一个对象: import java.io.*; import javax.sound.sampled.*; class x { public static void main(String[] args) {

我想用下面的代码在java中播放一些声音。那个声音是WAV格式的,所以我认为这段代码应该可以很好地工作,但它并没有播放声音,只是什么都没做。我的控制台上甚至没有错误。那么有人能帮我让这段代码播放声音吗。(此声音包含在我的src文件的一个包中)


您刚刚启动此线程,因此请创建一个对象:

import java.io.*;
import  javax.sound.sampled.*;

class x {
    public static void main(String[] args) {

        Thread b= new Thread(new Runnable() {

            @Override
            public void run() {
                try {
                    Clip clip = AudioSystem.getClip();
                    File file = new File("G:/skit/msg.wav");
                    AudioInputStream inputStream = AudioSystem.getAudioInputStream(file);
                    clip.open(inputStream);
                    clip.start();
                } catch (Exception e) {
                    e.printStackTrace();
                }

            }
        });
        b.start();
    }
}

您必须等待剪辑播放并结束。您也可以创建一些侦听器,但这更复杂。当剪辑播放结束(isActive()为false)时,结束


你必须启动线程,这可能就是为什么仍然没有发生任何事情的原因。你必须展示整个程序-我今天已经做了足够多的猜测,但这是我的整个程序,只是没有任何影响仍然没有发生任何事情
import java.io.*;
import  javax.sound.sampled.*;

class x {
    public static void main(String[] args) {

        Thread b= new Thread(new Runnable() {

            @Override
            public void run() {
                try {
                    Clip clip = AudioSystem.getClip();
                    File file = new File("G:/skit/msg.wav");
                    AudioInputStream inputStream = AudioSystem.getAudioInputStream(file);
                    clip.open(inputStream);
                    clip.start();
                } catch (Exception e) {
                    e.printStackTrace();
                }

            }
        });
        b.start();
    }
}
public class P {

 public static void main(String[] args) {

 new Thread(new Runnable() {

        @Override
        public void run() {

            try {

            System.out.println("started");

                Clip clip = AudioSystem.getClip();

                File file = new File(".......................wav");

                AudioInputStream inputStream = AudioSystem.getAudioInputStream(file);

                clip.open(inputStream);

                clip.start();

                while(clip.isOpen()) {
                  try { Thread.sleep(2000); } catch(InterruptedException ie) {}
                  if(!clip.isActive()) break;
                }

            } catch (Exception e) {
                e.printStackTrace();
            }

        }
    }).start();
 }

 }