Hi, my problem code my class audiotool.java
warnings:
my code experiment for jdk 7.07update:Code:D:\java>javac AudioTool.java
AudioTool.java:5: warning: WaveFileWriter is internal proprietary API and may be
removed in a future release
import com.sun.media.sound.WaveFileWriter;
^
AudioTool.java:105: warning: WaveFileWriter is internal proprietary API and may
be removed in a future release
final AudioFileWriter afw = new WaveFileWriter();
^
2 warnings
Sorry , my languagge italian.Code:import java.io.*;
import javax.sound.sampled.*;
import javax.sound.sampled.spi.AudioFileWriter;
import com.sun.media.sound.WaveFileWriter;
public class AudioTool {
private static final long serialVersionUID = 1L;
protected boolean running;
ByteArrayOutputStream out;
/**
* Catturazione Audio - CaptureAudio
*/
public void captureAudio() {
try {
final AudioFormat format = getFormat();
DataLine.Info info = new DataLine.Info(TargetDataLine.class, format);
final TargetDataLine line = (TargetDataLine)AudioSystem.getLine(info);
line.open(format);
line.start();
Runnable runner = new Runnable() {
int bufferSize = (int)format.getSampleRate() * format.getFrameSize();
byte buffer[] = new byte[bufferSize];
public void run() {
out = new ByteArrayOutputStream();
running = true;
try {
while (running) {
int count = line.read(buffer, 0, buffer.length);
if (count > 0) {
out.write(buffer, 0, count);
}
}
out.close();
line.close();
} catch (IOException e) {
System.err.println("I/O problems: " + e);
System.exit(-1);
}
}
};
Thread captureThread = new Thread(runner);
captureThread.start();
} catch (LineUnavailableException e) {
System.err.println("Line unavailable: " + e);
System.exit(-2);
}
}
/**
* Suona Audio - playAudio
*/
public void playAudio() {
try {
byte audio[] = out.toByteArray();
InputStream input = new ByteArrayInputStream(audio);
final AudioFormat format = getFormat();
final AudioInputStream ais = new AudioInputStream(input, format, audio.length / format.getFrameSize());
DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
final SourceDataLine line = (SourceDataLine) AudioSystem.getLine(info);
line.open(format);
line.start();
Runnable runner = new Runnable() {
int bufferSize = (int) format.getSampleRate()
* format.getFrameSize();
byte buffer[] = new byte[bufferSize];
public void run() {
try {
int count;
while ((count = ais.read(
buffer, 0, buffer.length)) != -1) {
if (count > 0) {
line.write(buffer, 0, count);
}
}
line.drain();
line.stop();
line.close();
} catch (IOException e) {
System.err.println("I/O problems: " + e);
System.exit(-3);
}
}
};
Thread playThread = new Thread(runner);
playThread.start();
} catch (LineUnavailableException e) {
System.err.println("Line unavailable: " + e);
System.exit(-4);
}
}
/**
* Salva Audio - saveAudio (Path).
*/
public void saveAudio(String Path) {
File file = new File(Path);
try {
byte audio[] = out.toByteArray();
InputStream input = new ByteArrayInputStream(audio);
final AudioFormat format = getFormat();
final AudioInputStream ais = new AudioInputStream(input, format, audio.length / format.getFrameSize());
final AudioFileWriter afw = new WaveFileWriter();
afw.write(ais, AudioFileFormat.Type.WAVE, file );
ais.close();
} catch (IOException e) {
System.err.println("Impossibile salvare il file '"+file+"': " + e);
System.exit(-4);
}
}
/**
* Configurazione Audio -
*/
private AudioFormat getFormat() {
float sampleRate = 8000;
int sampleSizeInBits = 8;
int channels = 1;
boolean signed = true;
boolean bigEndian = true;
return new AudioFormat(sampleRate,sampleSizeInBits, channels, signed, bigEndian);
}
}
My User system Windows 7 64bit ..
Help help.

