The following method "sound" works on my PC and it sounds a beep. I am using java 1.5
and Jdeveopler 10.1.3.4 on Windows XP/SP2.

import javax.sound.sampled.*;

public void handleBeep(ReturnEvent returnEvent)
{

    try {
         sound(2000,150);
    } catch (LineUnavailableException lue) {
    System.out.println(lue);
    }
   }


public static void sound(int hz,int msecs) throws LineUnavailableException {
byte[] buf = new byte[msecs*8];

for (int i=0; i<buf.length; i++) {
double angle = i / (8000.0 / hz) * 2.0 * Math.PI;
buf[i] = (byte)(Math.sin(angle) * 80.0);
}

AudioFormat af = new AudioFormat(8000f,8,1,true,false);
SourceDataLine sdl = AudioSystem.getSourceDataLine(af);
sdl.open(af);
sdl.start();
sdl.write(buf,0,buf.length);
sdl.drain();
sdl.close();
}

Recommended Answers

I'm sorry but are you asking for help? If not, congratulations on getting your beep method to work. If you are asking for help, what is your question?

Jump to Post

Drive-by code snippet.

Jump to Post

All 5 Replies

I'm sorry but are you asking for help? If not, congratulations on getting your beep method to work. If you are asking for help, what is your question?

Drive-by code snippet.

Great, I have drive-by code snippets, drive-by flu shots, I think I'm set for life ;)

Drive-by code snippet.

that's what you get in 'tha H00d'

I'm sorry but are you asking for help? If not, congratulations on getting your beep method to work. If you are asking for help, what is your question?

I have no issue running this method on my PC, but i have an issue running this on Unix/Weblogic server. I got error message. See below:
" No line matching interface SourceDataLine supporting format PCM_SIGNED 8000.0 Hz, 8 bit, mono, 1 bytes/frame, is supported." from Unix (Sun). Any thought ? Thanks.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.