gpt4 book ai didi

Java 声音 API 初始化

转载 作者:行者123 更新时间:2023-12-01 17:37:00 26 4
gpt4 key购买 nike

我使用以下代码在游戏中播放声音。

import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import java.io.IOException;

public class AudioController {

public static void playback(String fileName)
throws LineUnavailableException, UnsupportedAudioFileException, IOException {
AudioInputStream ais = AudioSystem.getAudioInputStream(AudioController.class.getClassLoader().getResourceAsStream("sounds/"+fileName));

AudioFormat format = ais.getFormat();
DataLine.Info info = new DataLine.Info(Clip.class, format);
Clip clip = (Clip) AudioSystem.getLine(info);

clip.open(ais);
clip.start();
}
}

问题是:如果第一次播放声音,应用程序会挂起一小段时间,因为需要完成某种初始化工作。此后播放的每个声音都不会表现出这种行为。如何防止这种情况发生?

最佳答案

我也遇到过这个问题,我的经验是,这与剪辑的大小无关,而是与您第一次尝试启动剪辑时加载许多类有关由于加载许多 JavaSound 类的开销。

如果您将参数 -verbose:class 添加到 java,您也可能会看到此问题。

对我有用的是有一个没有任何音频的silent.wav 文件。我在主声音开始之前预先播放它,它让一切都准备好了。

关于Java 声音 API 初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5291725/

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