我正在后台播放音频,我希望程序的控制保持静止,直到音频播放结束,因为我正在使用空while循环,如下所示
while(isPlaying==true){};
mediaPlayer.stop();
正如您所看到的,当循环保持程序控制直到音频播放,然后执行下一条指令时。这很好,但我逐渐意识到,这不是一个合适的方法来做这件事,因为我正在寻找替代品。请帮助。
首先,你不需要比较你在代码中已经完成的两个布尔型字段...
while(isPlaying==true){};
你可以这样做,比如..
while(isPlaying){};
现在你已经告诉我你正在使用java,你可以试试这个...
while(isPlaying){
Thread.sleep(1);
};
嗯,依我拙见,最好使用另一种实现..尽量用thread,这样就不会把你的程序挂在那里(毕竟是背景音频;播放音频时,您可能想做些别的事情)..
尝试查看此页面…
假设你的程序是用Java编写的(...你为什么给它三个语言标签?您有几个选择。您可以使用适当的同步事件,例如:
// fields
Object playerStopEvent = new Object();
boolean isPlaying;
// in your media player, when playback is complete:
synchronized (playerStopEvent) {
isPlaying = false;
playerStopEvent.notifyAll();
}
// elsewhere, when waiting for playback to complete:
synchronized (playerStopEvent) {
while (isPlaying) {
try {
playerStopEvent.wait();
} catch (InterruptedException x) {
// abort or ignore, up to you
}
}
}
mediaPlayer.stop();
有关更多示例,请参阅有关受保护块的官方教程。
您也可以让< code>mediaPlayer在结束时调用某个回调函数,例如,在开始播放时禁用GUI组件,在结束回调函数被调用时重新启用它们(您也可以在这里使用事件侦听器方法)。
在没有更多信息的情况下,我推荐后者,因为它不会阻止你在玩家玩游戏时做其他不相关的事情(或者让你的程序根本没有反应),但前者可能更适合于你的情况。
如果是 C 或 C,则概念是相同的。使用第一个选项的条件变量/事件的任何等效项,或第二个选项的回调/侦听器/信号槽的任何等效项。
while 关键字可以用作当型循环(当条件满足时循环)。 让我们用 while 循环写一个不怎么出名的 FizzBuzz 程序。 fn main() { // 计数器变量 let mut n = 1; // 当 `n` 小于 101 时进入循环操作 while n < 101 { if n % 15 == 0 { printl
问题内容: 我正在制作一个以这种方式执行的while循环程序: 主线程进入while循环。 在while循环中什么也没有发生。 线程将停留在while循环中,直到满足条件为止。 另一个线程运行一个满足上述条件的函数。 这是一个例子: 类中还有另一个函数会将路径设置为null,一旦发生这种情况,主线程应退出此循环。在另一个线程中调用另一个函数。 但是,即使将path设置为null,主线程也不会退出循
我正在编写一个 Java 程序。它应该打印出年终账户余额,今年投资,年度回报和年度数量。前任: 第一年-投资10000美元,投资额为10%,最终投资额为11000美元第二年-在现有11000美元的基础上再投资10000美元,现在你有21000美元,年回报率为2100美元,最终投资额为23100美元,持续投资6年。 我的代码打印了所有6年,但与第一年的值相同。循环有什么问题吗?非常感谢。这里我的代码
我的代码: 一切正常,但我不能让循环在任何地方工作。
问题内容: 使用SQL 2012并将XML传递到存储过程中,该过程必须接受该输入,并为传递到该存储过程的XML部分中的每个项目在表中写一行。XML看起来像: 存储过程的输出应该是将5行插入到一个表中(上面每个插入一行),并且在该表的和字段中每个字段具有相同的值。 我可以得到的数量并可以获取XML,但是我不知道如何遍历它来进行插入。 我可以使用以下SQL来获取XML中的内容。 目前,我正在使用变量和
本文向大家介绍C#中for循环、while循环循环执行的方法,包括了C#中for循环、while循环循环执行的方法的使用技巧和注意事项,需要的朋友参考一下 先给大家介绍下C#中的循环执行for循环 在这一节练习中,我们向大家介绍一下C#中的另一种重要的循环语句,for循环。 表达式1:一般为赋值表达式,给控制变量赋初值; 表达式2:逻辑表达式,循环控制条件;当条件为真时,循环执行循环体中的语句。