2012-07-04 4 views
5

Справа, хорошо. В первый раз я фактически использую Java для решения проблемы. Я купил новый комплект наушников под названием Sennheiser 120 HD; но есть проблема. Если отсутствует постоянное излучение звука, тогда основание для наушников в конечном итоге отключится и выключится. Наушники спам статичны, что ужасно на ушах. Решение для меня в настоящее время играет музыку 24/7, чтобы предотвратить статическую смерть. Может быть, я странный, но я не хочу слушать музыку 24/7.Есть ли библиотека на Java для периодического излучения определенной частоты?

Я считаю, что приемлемым решением для этого было бы постоянно излучать звук, который может обнаружить база, но я не слышу. Приложение должно быть эффективным, так как оно работает 24/7.

Я занимаюсь некоторыми исследованиями, но я не настолько разбираюсь в Java. Я не могу найти библиотеку для испускания определенной частоты. Кто-нибудь знает?

Было бы лучше, если вы нашли решение для этого в пределах 4 дня, перед тем как вернуть политику в магазине, будет недействительным. Если это не сработает.

Email from Sennheiser

+1

Не было бы легче вернуть наушники в кредит магазина, поскольку они явно не подходят для цели? Или, если это не так, просто отключите их, когда они вам не нужны? – biziclop

+1

Кстати, я думаю, что играть постоянный нулевой сигнал будет работать. Вы можете настроить медиаплеер на самую известную часть John Cage. – biziclop

+0

Они активируются снова при включении источника звука. Итак, вы просто хотите носить их, не слушая музыку? – opyate

ответ

1

Я думаю, вы обнаружите, что прослушивание с постоянной частотой звука болезненно на ушах. Однако вы могли бы сделать это примерно так, просто используя стандартные библиотеки 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(); 
+0

Я думал о частоте, которая не слышима, немного выше, чем голос москита, который использует ученик, чтобы уйти с использованием своего мобильного телефона в классе. EDIT: закончил просмотр исходного кода. В самом деле ничего не имеет смысла в инструкции for. Может быть, когда-нибудь я буду к этому моменту; однако это легко изменить. Спасибо, я скоро попробую. –

+0

В этом случае я подозреваю, что решение с нулевым сигналом biziclop должно работать. Если это не так, я могу предложить субадкую частоту, скажем, 4 Гц. Высокая частота может делать вещи в ушах, даже если вы не можете их услышать. –

+0

Hm, 4Hz едва слышен. Поскольку время между отключениями непротиворечиво, возможно, это будет работать, чтобы играть его примерно на одну секунду каждые сорок секунд? (1000) для (40 000) –