Java采集声音_通过java采集PC麦克风音频及播放wav音频文件

Java采集声⾳_通过java采集PC麦克风⾳频及播放wav⾳频⽂
AudioFormat对象
sampleRate 采样率 每秒⾳频采样数量
sampleSizeInBits 采样位数 每个采样的位数
channels 声道 1: Mono 单声道,2:Stereo ⽴体
signed 有符号⽆符号
bigEndian ⼤端模式存储 还是⼩端模式存储
采集麦克风⾳频
AudioFormat audioFormat = new AudioFormat(16000.0F, 16, 1, true, false);
ccr5
DataLine.Info info = new DataLine.Info(TargetDataLine.class, audioFormat);
TargetDataLine targetDataLine = (Line(info);
targetDataLine.open(audioFormat);
擦鞋巾配方targetDataLine.start();
System.out.println("You can speak now!");
int nByte = 0;
final int bufSize = 3200;
byte[] buffer = new byte[bufSize];
while ((nByte = ad(buffer, 0, bufSize)) > 0) {
// 直接发送麦克风数据
System.out.println( new String(buffer) );
}
播放wav⾳频⽂件
AudioInputStream audioInputStream;// ⽂件流
AudioFormat audioFormat;// ⽂件格式
SourceDataLine sourceDataLine;// 输出设备
File file = new File("D:\\a.wav");
/
永久模板>太阳能沼气池
/ 取得⽂件输⼊流
audioInputStream = AudioInputStream(file);
audioFormat = Format();
// 转换⽂件编码
if (Encoding() != AudioFormat.Encoding.PCM_SIGNED) {
audioFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, SampleRate(), 16,
audioInputStream = AudioInputStream(audioFormat, audioInputStream);
}
// 打开输出设备
DataLine.Info dataLineInfo = new DataLine.Info(SourceDataLine.class, audioFormat, AudioSystem.NOT_SPECIFIED); sourceDataLine = (SourceDataLine) Line(dataLineInfo);
sourceDataLine.open(audioFormat); // 打开具有指定格式的⾏,这样可以使⾏获得所有所需的系统资源并变得可操作sourceDataLine.start(); // 允许某⼀数据⾏执⾏数据I/O
byte tempBuffer[] = new byte[320];
try {
rat组合
int cnt;
// 读取数据到缓存区
// 从⾳频流读取指定的最⼤数量的数据字节,并将其放⼊给定的字节数组中。
// return: 读⼊缓冲区的总字节数;如果因为已经到达流末尾⽽不再有更多数据,则返回-1
while ((cnt = ad(tempBuffer, 0, tempBuffer.length)) != -1) {
ttbn
if (cnt > 0) {
// 写⼊缓存数据
sourceDataLine.write(tempBuffer, 0, cnt); // 通过此源数据⾏将⾳频数据写⼊混频器
}
}
// Block等待临时数据被输出为空
// 通过在清空数据⾏的内部缓冲区之前继续数据I/O,排空数据⾏中的列队数据
sourceDataLine.drain();
// 关闭⾏,指⽰可以释放的该⾏使⽤的所有系统资源。如果此操作成功,则将⾏标记为 closed,并给⾏的侦听器指派⼀个 CLOSE 事件。
sourceDataLine.close(); } catch (Exception e) { e.printStackTrace(); it(0);
}

本文发布于:2024-09-20 18:25:08,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/240625.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   指定   系统资源   采样   缓冲区   打开   字节
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议