Java windows服务中的无限循环
我有一个奇怪的问题,就是我的麦克风有时会自动静音。所以我决定写一个windows服务,如果它是静音的,它将取消静音。以下是所有代码:Java windows服务中的无限循环,java,windows-services,Java,Windows Services,我有一个奇怪的问题,就是我的麦克风有时会自动静音。所以我决定写一个windows服务,如果它是静音的,它将取消静音。以下是所有代码: import javax.sound.sampled.*; public class Unmute { public static void main(String[] args) { unmute(); } public static void unmute() { Line.Info[] th
import javax.sound.sampled.*;
public class Unmute
{
public static void main(String[] args)
{
unmute();
}
public static void unmute() {
Line.Info[] thisLineArr;
Line.Info thisLineInfo;
Line thisLine;
BooleanControl mute;
Mixer.Info[] infos = AudioSystem.getMixerInfo();
try {
while (true) {
for (Mixer.Info info: infos)
{
Mixer mixer = AudioSystem.getMixer(info);
if (mixer.isLineSupported(Port.Info.MICROPHONE))
{
thisLineArr = mixer.getTargetLineInfo();
thisLineInfo = thisLineArr[0];
thisLine = mixer.getLine(thisLineInfo);
thisLine.open();
for (Control thisControl : thisLine.getControls()) {
if (thisControl.getType().equals(BooleanControl.Type.MUTE)) {
mute = (BooleanControl)thisLine.getControl(BooleanControl.Type.MUTE);
if(mute.getValue()) {
mute.setValue(false);
}
}
}
thisLine.close();
}
}
Thread.sleep(1 * 1000);
}
} catch (Exception e) {
System.out.println(e);
}
}
}
我使用Java服务包装器并将此代码作为服务安装。一切正常,但困扰我的是主函数中的无限循环。有一个ifinite循环可以吗?或者有更好的解决方案来解决我的问题吗?只要这
sleep()
保持不变,您的代码就可以了。否则,您很可能会使用一个内核的100%。只要这sleep()
保持不变,您的代码就可以了。否则,您很可能会使用一个核心的100%。