簡體   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