无法使用剪辑在java中播放声音

时间:2018-02-11 19:08:46

标签: java eclipse file audio avaudiofile

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

 public static void main(String[] args) {

 new Thread(new Runnable() {

        @Override
        public void run() {

            try {

                Clip clip = AudioSystem.getClip();

                File file = new File("C:\\Users\\Jovan\\Desktop\\song.wav");

                AudioInputStream inputStream = AudioSystem.getAudioInputStream(file);

                clip.open(inputStream);

                clip.start();

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

        }
    });
 }

2 个答案:

答案 0 :(得分:0)

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

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();
    }
}

答案 1 :(得分:0)

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

handleChange(car, propertyName, value) {

   const currentValue = this.props[car][propertyName];
}