gpt4 book ai didi

java - 如何在Java游戏中播放声音?

转载 作者:行者123 更新时间:2023-11-30 09:56:37 25 4
gpt4 key购买 nike

我使用以下代码在 Java (1.5) applet 游戏中成功播放了声音:

// get an available clip to play it
Clip clip = null;
for (Clip clipTemp : players) {
if (!clipTemp.isOpen()) {
clip = clipTemp;
break;
}
}
if (clip == null) {
// no available player found, don't play
return;
}

clip.open(audioFormat, audioByteData, 0, audioByteData.length);

clip.start();

(播放器是我在开始时打开的剪辑列表,目的是减少延迟,线路监听器在检索到停止事件时关闭线路。)

我面临的问题是播放声音时最多 1 秒的间歇性延迟。这很糟糕。

有什么办法可以改善吗? SourceDataLines 值得考虑吗?

最佳答案

Java Applet 会在您想要播放剪辑时流式传输您的剪辑,这就是为什么您会遇到延迟,因为声音文件尚未加载到内存中。

自从我完成 Java applet 编程以来已经有一段时间了,但我记得我曾经预加载我所有的剪​​辑,然后调用播放不会重新打开文件。

这是我的一个旧项目的一些代码

Clip shoot;

private loadShootWav()
{
AudioInputStream sample;
sample = AudioSystem.getAudioInputStream(this.getClass().getResource("shoot.wav"));
shoot = AudioSystem.getClip();
shoot.open(sample);
}

public void playShootSFX()
{
shoot.stop();
shoot.setFramePosition(0);
shoot.start();
}

关于java - 如何在Java游戏中播放声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2246809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com