是否可以从 NetBeans 中的 Java 包调用.mp3或.wav文件



我的朋友让我创建一个应用程序,他可以与游戏Plague Inc一起使用,他希望在应用程序中播放游戏的配乐。在进行网络研究后,我已经尝试了所有方法,但没有任何效果。是否可以从 java 包(如图像)调用音轨,而不是指定文件夹目录和 URL?我在网上找到了一些有希望的信息,但是当我在尝试后运行代码时,AudioInputStream不断给我错误。我尝试使用子句例外,但这与 main 方法严重冲突,应用程序甚至无法运行。我尝试将编码放在构造函数、新方法甚至主方法本身中,但当我运行应用程序时,所有这些都会抛出错误(我什至不知道把它放在哪里以便它可以工作)。请帮忙,因为这越来越令人沮丧。

我的软件包称为声音,文件称为瘟疫.wav虽然游戏是安卓游戏,但我的应用程序在Windows PC上运行

这是我到目前为止的编码:

File sound = new File("/Sound/plague.wav");
            AudioInputStream audioIn = AudioSystem.getAudioInputStream(sound);
            Clip clip = AudioSystem.getClip();
            clip.open(audioIn);
            clip.loop(Clip.LOOP_CONTINUOUSLY);
        } catch (LineUnavailableException ex) {
            Logger.getLogger(knownDiseases.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(knownDiseases.class.getName()).log(Level.SEVERE, null, ex);
        } catch (UnsupportedAudioFileException ex) {
            Logger.getLogger(knownDiseases.class.getName()).log(Level.SEVERE, null, ex);
        }

您可以将其作为资源流获取检查这个:

       InputStream input = getClass().getResourceAsStream("/Sound/plague.wav");
       AudioInputStream audioIn = AudioSystem.getAudioInputStream(input);
            Clip clip = AudioSystem.getClip();
            clip.open(audioIn);
            clip.loop(Clip.LOOP_CONTINUOUSLY);
        } catch (LineUnavailableException ex) {
            Logger.getLogger(knownDiseases.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(knownDiseases.class.getName()).log(Level.SEVERE, null, ex);
        } catch (UnsupportedAudioFileException ex) {
            Logger.getLogger(knownDiseases.class.getName()).log(Level.SEVERE, null, ex);
        }

下面是一个示例类:

import java.io.IOException;
import java.io.InputStream;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
public class Snippet {
    public static void main(String[] args) throws Exception {
        try {
            InputStream input = Snippet.class.getResource("/Sound/sound.wav")
                    .openStream();
            AudioInputStream audioIn = AudioSystem.getAudioInputStream(input);
            Clip clip = AudioSystem.getClip();
            clip.open(audioIn);
            clip.loop(Clip.LOOP_CONTINUOUSLY);
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    // A GUI element to prevent the Clip's daemon Thread
                    // from terminating at the end of the main()
                    JOptionPane.showMessageDialog(null, "Close to exit!");
                }
            });
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

最新更新