Emettere un suono beep da console – Trucco Java #0001

Beep beep Volete che la vostra applicazione Java emetta un beep acustico/un suono ?
Ecco come si fa:

public class TestBeep {
public static void main(String args[]) {
// ASCII bell
System.out.print("07");
System.out.flush();
}
}

Compilando ed eseguendo questo semplice codice ascolterete il classico Beep acustico.
Invece, utilizzando quest’altro codice

import java.awt.*;

public class Beep {
  public static void main(String args[]) {
     Toolkit.getDefaultToolkit().beep();
  }
}

Ascolterete stavolta il segnale acustico predefinito del vostro sistema operativo in uso
(Io, per esempio, che sto lavorando con Windows Xp
ascolto il suono del “Windows XP Ding.wav”)

( http://www.rgagnon.com/javadetails/java-0001.html )

====================================

( http://www.rgagnon.com/javadetails/java-0499.html )

Un’altra soluzione, per emettere uno o più toni sonori dalla console, è la seguente

import javax.sound.sampled.*;

//jdk1.3
public class Tone {
     public static float SAMPLE_RATE = 8000f;
     public static void sound(int hz, int msecs)
      throws LineUnavailableException {
         byte[] buf = new byte[1];
         AudioFormat af = new AudioFormat(SAMPLE_RATE,8,1,true,false);
         SourceDataLine sdl = AudioSystem.getSourceDataLine(af);
         sdl.open(af);
         sdl.start();
         for (int i=0; i < msecs*8; i++) {
             double angle = i / (SAMPLE_RATE / hz) * 2.0 * Math.PI;
             buf[0] = (byte)(Math.sin(angle) * 110.0);
             sdl.write(buf,0,1);
         }
         sdl.drain();
         sdl.stop();
         sdl.close();
     }

     public static void main(String[] args) {
         try {

             Tone.sound(1000,100);
             Tone.sound(100,1000);
             Tone.sound(5000,100);
         } catch (LineUnavailableException lue) {
             System.out.println(lue);
         }
     }
}

There are no comments on this post

Leave a Reply