gpt4 book ai didi

java - 停止.wav

转载 作者:行者123 更新时间:2023-12-03 02:21:12 25 4
gpt4 key购买 nike

我有播放.wav文件中声音的代码,但是我无法停止播放歌曲,甚至无法退出程序直到播放结束。因为这是一首5分钟的歌曲,所以这是一个问题。这是我如何播放wav的代码:

public class EasySound{
private SourceDataLine line = null;
private byte[] audioBytes;
private int numBytes;

public EasySound(String fileName){
File soundFile = new File(fileName);
AudioInputStream audioInputStream = null;
try {
audioInputStream = AudioSystem.getAudioInputStream(soundFile);
} catch (Exception ex) {
System.out.println("*** Cannot find " + fileName + " ***");
System.exit(1);
}

AudioFormat audioFormat = audioInputStream.getFormat();
DataLine.Info info = new DataLine.Info(SourceDataLine.class,
audioFormat);
try {
line = (SourceDataLine)AudioSystem.getLine(info);
line.open(audioFormat);
} catch (LineUnavailableException ex) {
System.out.println("*** Audio line unavailable ***");
System.exit(1);
}

line.start();

audioBytes = new byte[(int)soundFile.length()];

try {
numBytes = audioInputStream.read(audioBytes, 0, audioBytes.length);
} catch (IOException ex) {
System.out.println("*** Cannot read " + fileName + " ***");
System.exit(1);
}
}

public void play() {
line.write(audioBytes, 0, numBytes);
}

}

有没有更好的方法可以做到这一点,或者有什么方法可以让我停止播放歌曲呢?

提前致谢!

最佳答案

在单独的线程中播放音频文件。将UI保留在有权访问“播放”线程的其他线程中。当用户想要暂停时,您可以简单地暂停该线程。如果您正在使用的任何库都没有这样的功能,我会感到惊讶。

关于java - 停止.wav,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12499230/

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