繁体   English   中英

我如何一起播放两种声音?

[英]How could I play two sounds together?

好吧,我正在用Java编写一个游戏项目,我想实现这样的东西:当一个对象开始移动时,它会产生一些声音效果,而当另一个对象在第一个对象停止之前开始移动时,它也会产生一些声音。效果。 在第二个对象开始移动之后而第一个对象停止移动之前,如何合并两个对象的声音,而不是分别播放它们?

其中大部分将使用java.sound.sampled库实现。 专注于Clip的功能。 该站点使用样本和MIDI文件提供了一些非常好的样板。 它甚至有一个游戏示例。

无论如何,基于StackOverflow的javasound页面 ,这是一次播放两个Clip的简单示例:

public static void main(String... args) throws Exception {
    URL url1 = new URL("http://www.websitewithsomewav/noise1.wav");
    Clip clip1 = AudioSystem.getClip();
    AudioInputStream stream1 = AudioSystem.getAudioInputStream(url1);
    clip1.open(stream1);

    URL url2 = new URL("http://www.websitewithsomewav/noise2.wav");
    Clip clip2 = AudioSystem.getClip();
    AudioInputStream stream2 = AudioSystem.getAudioInputStream(url2);
    clip2.open(ais2);

    clip1.loop(Clip.LOOP_CONTINUOUSLY);
    clip2.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!");
        }
    });
}

更新资料

如果绝对必须使用单个输入流,则可以尝试MixingAudioInputStream

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM