有时软件需要发出声音来提醒用户,一般是使用Toolkit.getDefaultToolkit().beep(),但只会使音箱发声,没有音箱的PC仍然没有效果。
如果想要电脑主板上的喇叭发出声音可以使用jnative,它是开源的,windows和linux下都能用。
首先到sourceforge下载jnative.jar,放到工程lib目录下并Add to Build Path,就可以了。
附测试程序
public class Beep {
public static JNative getBeepJnative() throws NativeException {
return new JNative("kernel32.dll", "Beep");
}
public static void beep(JNative jn, int freq, int dwruration)
throws NativeException, IllegalAccessException {
jn.setRetVal(Type.VOID);
jn.setParameter(0, freq);
jn.setParameter(1, dwruration);
jn.invoke();
}
public static void main(String[] args) throws NativeException,
IllegalAccessException {
// 控制声音频率
int freqs[] = { 523, 587, 659, 698, 784, 880, 998, 1047, 998, 880, 784,
698, 659, 587, 523 };
JNative jn = Beep.getBeepJnative();
// 控制声音时长
int dwruration = 300;
for (int freq : freqs) {
Beep.beep(jn, freq, dwruration);
}
}
}