-1
我目前正忙於創建一個視頻遊戲作爲一個小型的項目,以保持我的編程技能點在大學。電子遊戲的一個方面就是聲音效果,而且我非常想知道如何在Java中做到最好。Java中的音效?
目前我使用的Clip類的聲音效果,這裏我使用的(很基本的,共同)代碼的預覽:
try {
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File(path));
clip = AudioSystem.getClip();
clip.open(audioInputStream);
if(loop)
{
clip.loop(Integer.MAX_VALUE);
volumeControl = (FloatControl)clip.getControl(FloatControl.Type.MASTER_GAIN);
setVolume(volume);
launched = true;
}
else
{
clip.start();
volumeControl = (FloatControl)clip.getControl(FloatControl.Type.MASTER_GAIN);
setVolume(volume);
running = true;
CoreTime.sfx.add(this);
}
} catch(Exception e){System.out.println(e + "=-=-=-=-=-=-=-=-=-=run SFXPlayer");}
與Clip類的問題卻是,它創造一個用於播放音頻的新線程。由於需要同時播放大量剪輯,因此可能會增加創建的線程數量,甚至可能會使遊戲凍結一段時間。通過一些分析,當同時播放大量聲音效果時,我已經獲得了多達60個線程的線程數。
現在顯然這是不受歡迎的行爲,我想知道如何解決這個問題,並更有效地實現聲音效果。你們有沒有方法或方法可以讓你知道,不會創造出這麼瘋狂的大量線程,我可以一次播放很多聲音效果?一些幫助真的會很感激!
「_已啓動和正在運行的布爾值之間有區別,我不打算在這裏解釋。」如果你不知道你在問什麼**。 – progyammer
@progy_rock布爾人與任務無關,所以我在你的評論中看不到這一點? – ImJustACowLol