我正在制作一个菜单上有鼠标悬停声音的游戏。但是,第二次播放声音时,第一个未完成,但第二次剪切了第一个。有什么办法可以解决该问题?
public static AudioClip menuMouseOver; //creating the audioClip
menuMouseOver = Applet.newAudioClip(new File(soundsLocation+"\\menuMouseOver.wav").toURL()); //loading the sound into the audioClip
menuMouseOver.play(); //calling the audioClip to play.
答案 0 :(得分:0)
AudioClip
,Clip
,SourceDataLine
未设置为同时播放。可以从一个公共.wav
文件创建多个AudioClips或Clips,而Java的音频系统会将它们混合在一起。不过,在这种情况下,您必须在内存中保存音频的多个副本,并且音频非常庞大。
但是编码单个音频文件的并发回放并不是特别棘手。一个相对简单的计划是将文件的单个副本加载到内存中,然后创建和管理多个索引到该内存区域中的“游标”以进行播放。可以将来自每个“光标”的音频数据添加到一起,并通过SourceDataLine
输出。
这是我用于AudioCue的计划,它是一种超级Clip
,允许实时音量,平移和音高变化以及同时播放。我相信TinySound是另一个可以同时播放的音频库。