Java中是否有用于不断发出特定频率的库?

dea*_*eef 5 java audio frequency libraries

对,好吧.我第一次使用Java来解决问题.我买了一套名为Sennheiser 120 HD的新耳机; 但是有一个问题.如果没有恒定的音频发射,那么耳机的底座将最终超时并关闭.耳机是静电的垃圾,耳朵很可怕.对我来说,这个解决方案目前是全天候播放音乐以防止死亡.也许我很奇怪,但我不想每周7天每天24小时听音乐.

我相信一个可行的解决方案是不断发出基地可以检测到但我听不到的声音.应用程序需要高效,因为它全天候运行.

我一直在做一些研究,但我不熟悉Java.我无法找到任何发出特定频率的库.有谁知道吗?

在商店的退货政策不再有效之前,最好在4天内得到解决方案.如果这不起作用,请注意.

来自Sennheiser的电子邮件

Rus*_*ser 3

我想你会发现听恒定频率的声音会让耳朵感到痛苦。但是,您可以这样做,只需使用标准 Java 库:

AudioFormat format = new AudioFormat(44000f, 16, 1, true, false);
SourceDataLine line = (SourceDataLine)AudioSystem.getLine(new DataLine.Info(SourceDataLine.class, format));

line.open(format);
line.start();

double f = 440; // Hz
double t = 3; // seconds

byte[] buffer = new byte[(int)(format.getSampleRate() * t * 2 + .5)];

f *= Math.PI / format.getSampleRate();

for(int i = 0; i < buffer.length; i += 2) {
    int value = (int)(32767 * Math.sin(i * f));
    buffer[i + 1] = (byte)((value >> 8) & 0xFF);
    buffer[i] = (byte)(value & 0xFF);
}

line.write(buffer, 0, buffer.length);

line.drain();
Run Code Online (Sandbox Code Playgroud)