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();
}
}请看这段代码,为啥不能在本机正常运行? 请较高手指点!
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();
}
}请看这段代码,为啥不能在本机正常运行? 请较高手指点!
解决方案 »
- java 打印机 乱码
- 多态的覆盖在JVM上是怎么实现的。。
- java Socket编程,收不到包问题
- 有意思的小算法,谁把代码贴上???
- 我想问下,如何使用java程序调出dos窗口来实现ping ip的功能?(注意,要弹出dos窗口显示ping信息)。谢谢。
- 如何在文本框中为文字添加下划线?
- 为什么报错[Microsoft][SQLServer2000 Driver for jdbc][SQLServer]将截断字符串或二进制数据?????
- 真诚请教一下,这个是为什么啊?
- 新手请教:java大全(Special Edintion using java1.1)上GreatRace问题(线程)
- 定义了一个包(含一个文件(两个类)),放在同名目录下,编译通过,可执行时报错找不到mainclass
- JAVA RSA 为什么密钥一样,加密出来的数据不一样呢
- 一个简单的排列组合算法
line2 是 phone正是因为没有异常,所以才郁闷!!!焦急等待高人指点一二。