import java.io.BufferedInputStream;
import java.io.IOException;
import java.util.Arrays;import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;
import javax.sound.sampled.TargetDataLine;
public class TestAudio {
public static void main(String[] arg) throws IOException {
AudioFormat format = new AudioFormat(8000, 16, 2, true, true);
int bufSize = 16384; TargetDataLine line1;
DataLine.Info info1 = new DataLine.Info(TargetDataLine.class, format); try {
line1 = (TargetDataLine) AudioSystem.getLine(info1);
line1.open(format, line1.getBufferSize());
} catch (Exception ex) {
return;
} SourceDataLine line2;
DataLine.Info info2 = new DataLine.Info(SourceDataLine.class, format);
try {
line2 = (SourceDataLine) AudioSystem.getLine(info2);
line2.open(format, bufSize);
} catch (LineUnavailableException ex) {
return;
} BufferedInputStream playbackInputStream; playbackInputStream = new BufferedInputStream(new AudioInputStream(
line1));// 封装成音频输出流,如果网络流是经过压缩的需在此加套解压流 byte[] data = new byte[1024];// 此处的1024可以情况进行调整,应跟下面的1024应保持一致
int numBytesRead = 0;
line1.start();
while (true) {
// numBytesRead = line1.read(data, 0, 1024);//
// 取数据(1024)的大小直接关系到传输的速度,一般越小越快,
numBytesRead = playbackInputStream.read(data);
DebugUtil.println(Arrays.toString(data));
DebugUtil.println(data.length + "===" + numBytesRead);
line2.write(data, 0, numBytesRead);
}
// line.stop();
// line.close();
}
}请看这段代码,为啥不能在本机正常运行? 请较高手指点!