- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个彩票程序,该程序使用不同的间隔来循环更新名称列表。对于每个更新,我都想播放一小段(300毫秒)click.wav。当我在Netbeans中运行该程序时,一切正常,但是当我构建jar时,它拒绝播放。奇怪的是,如果我通过在末尾添加静音来将声音延长到几秒钟,它会播放,但是时机已经全部消失,并且只有在循环运行4-5次后才开始播放。
我正在使用thread.sleep()在循环之间启动暂停。尽管这可能不是最好的方法,但它当然是最简单的方法,对于此程序的范围也无关紧要。我尝试使用计时器,但是声音仍然无法播放。
这是我播放wav文件的代码。
private static void play(String filename) {
URL url = VinLotteri.class.getResource(filename);
try {
Clip clip = AudioSystem.getClip();
clip.open(AudioSystem.getAudioInputStream(url));
clip.start();
} catch (LineUnavailableException | UnsupportedAudioFileException | IOException fail) {
}
}
class StartTrekning extends SwingWorker<String, String> {
private StartTrekning(List<String> navn, String vinner) {
}
@Override
protected String doInBackground() {
firstDraw = false;
Random rnd = new Random();
int v = 0;
int vinnerID = -1;
isRunning = true;
int counterPluss = 0;
int counterMinus = 0;
int rand = rnd.nextInt(17) + 45; // Antall trekninger 45-61
//Setter opp ulik pause mellom hver trekning
for (int i = rand; i > 0; i--) {
if (i > 40) {
v = 100;
} else if (i > 35) {
v = 150;
} else if (i > 25) {
v = 200;
} else if (i > 20) {
v = 250;
} else if (i > 15) {
v = 300;
} else if (i > 10) {
v = 400;
} else if (i > 6) {
v = 550;
} else if (i > 3) {
v = 800;
} else if (i > 1) {
v = 1200;
} else if (i > 0 && rand > 53) {
v = 2000;
}
play(click);
vinnerID++;//Øker vinnerID, som gir index for navnelisten navn
//"Loop-kode" (starter listen på nytt når den når slutten)
if (vinnerID > navn.size() - 1) {
vinnerID = 0;
}
vinner = navn.get(vinnerID);
int pluss10 = vinnerID;
int pluss9 = vinnerID;
int pluss8 = vinnerID;
int pluss7 = vinnerID;
int pluss6 = vinnerID;
int pluss5 = vinnerID;
int pluss4 = vinnerID;
int pluss3 = vinnerID;
int pluss2 = vinnerID;
int pluss1 = vinnerID;
int minus1 = vinnerID;
int minus2 = vinnerID;
int minus3 = vinnerID;
if (vinnerID > navn.size() - 11) {
pluss10 = -10 + counterPluss;
}
if (vinnerID > navn.size() - 10) {
pluss9 = -10 + counterPluss;
}
if (vinnerID > navn.size() - 9) {
pluss8 = -10 + counterPluss;
}
if (vinnerID > navn.size() - 8) {
pluss7 = -10 + counterPluss;
}
if (vinnerID > navn.size() - 7) {
pluss6 = -10 + counterPluss;
}
if (vinnerID > navn.size() - 6) {
pluss5 = -10 + counterPluss;
}
if (vinnerID > navn.size() - 5) {
pluss4 = -10 + counterPluss;
}
if (vinnerID > navn.size() - 4) {
pluss3 = -10 + counterPluss;
}
if (vinnerID > navn.size() - 3) {
pluss2 = -10 + counterPluss;
}
if (vinnerID > navn.size() - 2) {
pluss1 = -10 + counterPluss;
counterPluss = 0;
}
if (vinnerID < 3) {
minus3 = navn.size() + counterMinus;
}
if (vinnerID < 2) {
minus2 = navn.size() + counterMinus;
}
if (vinnerID < 1) {
minus1 = navn.size() + counterMinus;
}
if (vinnerID < 3) {
counterMinus++;
}
if (vinnerID == 3) {
counterMinus = 0;
}
if (vinnerID > navn.size() - 11) {
counterPluss++;
}
//Slutt på "loop-kode"
// Lager "rulleteksten"
lblVinner.setText(vinner);
lblHighlight1.setText(navn.get(minus1 - 1));
lblHighlight2.setText(navn.get(minus2 - 2));
lblHighlight3.setText(navn.get(minus3 - 3));
lblHighlight7.setText(navn.get(pluss1 + 1));
lblHighlight8.setText(navn.get(pluss2 + 2));
lblHighlight9.setText(navn.get(pluss3 + 3));
lblHighlight10.setText(navn.get(pluss4 + 4));
lblHighlight11.setText(navn.get(pluss5 + 5));
lblHighlight12.setText(navn.get(pluss6 + 6));
lblHighlight13.setText(navn.get(pluss7 + 7));
lblHighlight4.setText(navn.get(pluss8 + 8));
lblHighlight5.setText(navn.get(pluss9 + 9));
lblHighlight6.setText(navn.get(pluss10 + 10));
try {
Thread.sleep(v);
} catch (InterruptedException ex) {
Logger.getLogger(VinLotteri.class.getName()).log(Level.SEVERE, null, ex);
}
}
int rand1 = rnd.nextInt(100);
//Legger inn en liten kunstpause
if (rand1 < 50) {
try {
Thread.sleep(v);
} catch (InterruptedException ex) {
Logger.getLogger(VinLotteri.class.getName()).log(Level.SEVERE, null, ex);
}
}
panelVinner.append(idVinn + ". Trekning: " + vinner + "\n"); //Skriver ut vinneren
play(fanfare);
flashText(lblVinner, Color.WHITE, Color.BLUE, 270, 1650);
vinnere.add(vinner); //Lager vinnerliste
idVinn++;
nyListe(vinnerID, vinner);
isRunning = false;
return null;
}
最佳答案
好了,经过(很多)更多的故障排除后,结果证明代码没有问题,尽管我仍然不知道到底是什么问题。但是我发现,如果我从命令窗口运行jar文件,则一切正常。如果我双击Windows中的相同文件,则存在声音问题。因此,必须与在Windows中启动文件时文件如何运行有关。
至少我现在可以通过从批处理文件或Windows快捷方式运行“java -jar myfile.jar”来使其在Windows中运行。
编辑:事实证明,在另一台计算机上运行时,它工作正常。所以我的设置有些问题。我将尝试卸载并重新安装JDK。
关于java - 简短的声音文件在Netbeans中播放,但不在jar中播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15475276/
void main(){ char c; unsigned char uc; unsigned short us1, us2; short s1, s2; c
我要删除 wordpress html 格式在 woocommerce 产品简短描述中。添加 电话 到处标记。我知道如何在 wp 帖子和页面中做到这一点 remove_filter( 'the_exc
我通常会打开一个命令的联机帮助页,该命令已经知道我正在搜索的选项并阅读其描述。有时只需搜索该选项即可立即生效,有时该选项在其他地方被引用,有时该选项仅作为子字符串出现在前面的文本中。 作为一个具体的例
假设我们有一个编号的圆圈。我们想从 A 点到 B 点,但不知道应该向左还是向右。你会如何使用数字来计算你应该朝哪个方向前进? 示例: 我们目前在 1。我们想继续 5。我可以直观地看到 5 更近,所以我
我正在使用以下内容将产品名称和价格添加到悬停框。 在 functions.php 中 // Alter produt loop individual products add_action( 'woo
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我有一个for循环 for ($x=1; $x<=5; $x++){ ($x == 3)? continue : true; //some code here } 现在执行时出现错误
我刚刚开始我的第一个 Java Swing 项目(之前主要做基于 Web 的应用程序),并尝试了解如何构建一个适当的架构,并在 MVC 组件之间分离关注点。 我发现的几乎所有文档都非常深入地介绍了每个
我是一名优秀的程序员,十分优秀!