java - 无法播放WAV文件

标签 java audio

我正在尝试播放WAV剪辑,并且遇到一些问题。这是我正在使用的代码:

public class NewClass { 
private File soundFile = new File("/Project/src/model/soundfile.wav");

public NewClass() {

    JLabel playArea = new JLabel();
    playArea.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent e) {
        AudioClip clip = null;
        try {
        clip = Applet.newAudioClip(soundFile.toURI().toURL());
        } catch (MalformedURLException e1) {
            // TODO Auto-generated catch block
        e1.printStackTrace();
        }
    clip.play();    
    });
}

我在src文件夹中有一个单独的文件夹(模型),在其中保存了任何图像,或者在这种情况下保存了WAV文件(我知道我的MVC不正确,但这又是一个问题)。它没有任何异常(exception)地运行,但是什么都不玩。我在不久前编写的另一个项目中使用了相同的代码片段,并且该代码片段可以正常工作,所以我一直坚持为什么现在都弄糟了。有什么想法吗?

最佳答案

因此,我切换到Clip类而不是AudioClip并使它工作。这是为我做的代码:

File pop;

try {
        pop = new File(StartView.class.getResource("/model/pop.wav")
                .toURI());
    } catch (URISyntaxException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

void playSound(File soundIn) {   // Use pop as the input argument

        File soundFile = soundIn;
        AudioInputStream sound = null;

        try {
            sound = AudioSystem.getAudioInputStream(soundFile);
        } catch (UnsupportedAudioFileException | IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        DataLine.Info info = new DataLine.Info(Clip.class,
                sound.getFormat());
        clip = null;
        try {
            clip = (Clip) AudioSystem.getLine(info);
        } catch (LineUnavailableException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        try {
            clip.open(sound);
        } catch (LineUnavailableException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        clip.start();
}

我不能说为什么以前的代码不起作用,但是切换到Clip似乎可以解决问题。

关于java - 无法播放WAV文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27872760/

相关文章:

javascript - 可视化来自SoundCloud自定义播放器的音频?

android - TextView 不是从按钮 onClick 中绘制的

java - 当调用break时,while循环不会中断

java - 重构模式匹配序列

java - 按照模板将 long 转换为字符串

java - 注释为的类或子类的方面

java - 托管在不同服务器上的 JavaScript 前端的 JEE session

javascript - Phonegap/Cordova - 媒体 api - 从 URL 播放音频时,UI 卡住几秒钟

objective-c - 来自 AudioUnitRender 的错误 -50

android - 如何绘制Android音乐播放器的波形?