Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中播放.wav文件_Java - Fatal编程技术网

在Java中播放.wav文件

在Java中播放.wav文件,java,Java,大家好,我正在尝试开发一个声音播放器与java使用剪辑。 我在docs.oracle.com上学习了教程,但我不懂。 这是我的密码 import java.io.File; import java.io.IOException; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Clip; import javax.sou

大家好,我正在尝试开发一个声音播放器与java使用剪辑。 我在docs.oracle.com上学习了教程,但我不懂。 这是我的密码

import java.io.File;
import java.io.IOException;

import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;

public class SoundPlayer{
    public static void main(String[] args) {
        try {
            Clip clp = AudioSystem.getClip();
            AudioInputStream is = AudioSystem.getAudioInputStream(new File("1_welcome.wav"));
            clp.open(is);
            clp.start();
        } catch (LineUnavailableException e) {
            e.printStackTrace();
        } catch (UnsupportedAudioFileException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
我的问题是,当我运行应用程序时,什么也没有发生。

设置音量-

clp.open(is);

FloatControl volume = (FloatControl) play.getControl(FloatControl.Type.MASTER_GAIN);
volume.setValue(1.0f);

clp.start();

要使用Clip播放声音,该过程必须是活动的。因此,我们使用Swing应用程序。试试这个

import java.io.IOException;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import java.net.URL;
import javax.swing.*;

public class SoundPlayer extends JFrame {

   public SoundPlayer() {
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      this.setTitle("Test Sound Clip");
      this.setSize(300, 200);
      this.setVisible(true);

      try {
         // Open an audio input stream.
         URL url = this.getClass().getClassLoader().getResource("china.mid");
         AudioInputStream audioIn = AudioSystem.getAudioInputStream(url);
         // Get a sound clip resource.
         Clip clip = AudioSystem.getClip();
         // Open audio clip and load samples from the audio input stream.
         clip.open(audioIn);
         clip.start();
      } catch (UnsupportedAudioFileException e) {
         e.printStackTrace();
      } catch (IOException e) {
         e.printStackTrace();
      } catch (LineUnavailableException e) {
         e.printStackTrace();
      }
   }

   public static void main(String[] args) {
      new SoundPlayer();
   }
}

由于我只是将这个相对路径
“china.mid”
与类加载器一起使用,所以我在
build/classes/
目录中有
“china.mid”
文件。在Eclispe中,如果您的文件位于正确的位置,我会将其放在
bin/
目录中

如果文件位于正确的位置,请尝试使用其他文件。同时检查您机器的音量:P