如何从Java资源类文件夹访问和播放音频文件?

时间:2019-04-05 10:44:07

标签: java file audio resources

我正在尝试创建一个简单的程序,并且在此程序中,我设法从名为“ res”的库类文件夹中加载了精灵资源。我到了要在程序中添加音乐的地步,但是就像图像发生的那样,除非我从资源类文件夹访问音乐,否则它将无法正常工作。

在Internet上,我找不到与使用图像一样从该文件夹访问和播放音频文件的任何内容。可以从这些文件夹播放音乐吗?如果可以,怎么办?

这是我访问图片的方式:

package sbg.firstgame.gfx;

import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.imageio.ImageIO;

public class ImageLoader {
public static BufferedImage loadImage(String path){
    try {
        return ImageIO.read(ImageLoader.class.getResource(path));
        } catch (IOException e) {
            e.printStackTrace();
            System.exit(1);
        }
        return null;
    }
}

这是图像代码,如果可以与之相似,那就太好了。 感谢您的帮助。

1 个答案:

答案 0 :(得分:-1)

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 AudioPlayer {
    public static void playAudio() {
        AudioInputStream audioIn;
        try {
            audioIn = AudioSystem.getAudioInputStream(AudioPlayer.class.getResourceAsStream("/audio/file.wav"));
            Clip clip = AudioSystem.getClip();
            clip.open(audioIn);
            clip.start();
        } catch (UnsupportedAudioFileException | IOException | LineUnavailableException  e) {
            e.printStackTrace();
        }
    }

}

这仅适用于javax库。但是有很多方法可以做到这一点。

以下是快速音频播放器实现的示例 https://www.geeksforgeeks.org/play-audio-file-using-java/