gpt4 book ai didi

Java jLayer 应用程序在播放歌曲时卡住

转载 作者:行者123 更新时间:2023-11-29 07:57:07 26 4
gpt4 key购买 nike

我对 jLayer 有疑问。我有一个带有开始播放歌曲代码的按钮:

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {        
try {
Player prehravac;
FileInputStream buff = new FileInputStream(Okno.filename);
prehravac = new Player(buff);
prehravac.play();
if (prehravac != null) {
prehravac.close();
this.dispose();
}
} catch(Exception e) {

}
}

当我单击此按钮时,它开始播放歌曲,但整个应用程序卡住并且我无法单击任何内容。当歌曲结束时,没关系,我可以再次点击其他组件。

有人可以帮我吗? :) 谢谢

最佳答案

这是因为歌曲播放发生在与 GUI 相同的线程中,或者更具体地说是 EDT。 .因此,当歌曲正在播放时,GUI 不响应。要解决此问题,请执行以下操作:

new Thread(){
run(){
//Your play code
}
}.start();

这将在单独的线程中播放您的内容。但是,您必须考虑到,由于 GUI 是响应式的,您可以在歌曲仍在播放时开始播放歌曲。

有关详细信息,请参阅 this

关于Java jLayer 应用程序在播放歌曲时卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17013486/

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