java动态录音_java实现动态录音,声卡有声音进来就自动录音
TargetDataLine是声音的输入(麦克风),而SourceDataLine是输出(音响,耳机).
整个过程,请参见下面的程序.(运行后,实时地从麦克风录音,实时输出).
import java.io.*;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.SourceDataLine;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.FloatControl;
import javax.sound.sampled.TargetDataLine;
public class RecordAndPlay {
static volatile boolean stop=false;
public static void main(String[] args) {
Play();
}
//播放音频文件
public static void Play() {
try {
AudioFormat audioFormat =
// new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 44100F,
// 8, 1, 1, 44100F, false);
new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,44100F, 16, 2, 4,
44100F, true);
DataLine.Info info = new DataLine.Info(TargetDataLine.class, audioFormat); TargetDataLine targetDataLine = (TargetDataLine) AudioSystem.getLine(info);
targetDataLine.open(audioFormat);
final SourceDataLine sourceDataLine;
info = new DataLine.Info(SourceDataLine.class, audioFormat);
sourceDataLine = (SourceDataLine) AudioSystem.getLine(info);
sourceDataLine.open(audioFormat);
targetDataLine.start();
sourceDataLine.start();
FloatControl fc=(FloatControl)sourceDataLine.getControl(FloatControl.Type.MASTER_GAIN);
double value=2;
float dB = (float)
(Math.log(value==0.0?0.0001:value)/Math.log(10.0)*20.0);
fc.setValue(dB);
int nByte = 0;
final int bufSize=4*100;
byte[] buffer = new byte[bufSize];
while (nByte != -1) {
//System.in.read();
nByte = targetDataLine.read(buffer, 0, bufSize);
sourceDataLine.write(buffer, 0, nByte);
}
sourceDataLine.stop();
} catch (Exception e) {
e.printStackTrace();
}
}
}
java动态录音_java实现动态录音,声卡有声音进来就自动录音相关推荐
- java如何实现动态时钟_Java实现动态数字时钟
本文实例为大家分享了Java实现动态数字时钟的具体代码,供大家参考,具体内容如下 构建: Clock继承 JFrame 为运行页面 ClockText 测试类 创建 Clock 对象 运行效果: 具体 ...
- java数字时钟_Java实现动态数字时钟
本文实例为大家分享了Java实现动态数字时钟的具体代码,供大家参考,具体内容如下 构建: Clock继承 JFrame 为运行页面 ClockText 测试类 创建 Clock 对象 运行效果: 具体 ...
- java动态打包_java 调用动态库打包sdk
java连接c++动态库并生成jar包提供给别人调用 1.需要将java通过jni生成头文件,并导入到c++项目并对c++进行jni方法继承 在项目的src目录执行,否则会提示 错误:找不到符号 ja ...
- java常量配置_java项目动态配置常量和peiconfig.properties配置使用详解
java项目动态配置常量和peiconfig.properties配置使用详解 点击:2 Java工程中配置信息一般都写在 properties文件中,下面这篇文章是对java基础配置的一点学习心得整 ...
- springboot 注解动态赋值_java springboot动态给注解属性参数赋值
场景: 最近做了一个系统,使用Elasticsearch做了全文搜索,系统分为开发环境和正式环境,正式环境供公司内部使用,因为服务器资源不太充裕,决定开发环境和正式环境共用一个Elasticsearc ...
- java动物代码_Java基于接口实现模拟动物声音代码实例
(1)编写接口Animal (Animal.java) public interface Animal{ public abstract void cry(); public abstract Str ...
- java jxl 筛选_JAVA 用 JXL导出excel怎么给标题设置自动筛选功能,求代码。
展开全部 一.创建文件 拟生成e5a48de588b63231313335323631343130323136353331333363363435一个名为"test.xls"的Ex ...
- 苹果手机的siri在哪里_苹果手机轻敲背面3次自动录音,这个黑科技功能,我真是爱了|苹果手机|手机|siri...
那么今天我再给大家分享一个,苹果手机轻敲背面3次,能自动录音的方法. 这个黑科技功能,我真是爱了!下面就一起来看看,是如何开启和使用的吧. 一.如何快速录音 1.首先打开桌面上的快捷指令工具,如果你没 ...
- java动态代理_Java代理模式及动态代理详解
Java的动态代理在实践中有着广泛的使用场景,比如最场景的Spring AOP.Java注解的获取.日志.用户鉴权等.本篇文章带大家了解一下代理模式.静态代理以及基于JDK原生动态代理. 代理模式 无 ...
最新文章
- 类中成员函数声明后面的const的含义
- python 调用 so 库 需要注意的地方
- 在Silverlight中读取指定URL图片包数据
- 数学建模清风第一次直播:传染病模型和微分方程拟合
- win10切换输入法快捷键_输入法失灵怎么办?该怎么恢复?
- 哪有那么多「能力问题」,在你牛到一定程度前,全是「态度问题」
- jquery 高亮插件 highlight
- WindowsXP操作系统进程详细介绍
- 爬虫404如何跳过_金秀贤、全智贤主演的韩剧来自星星的你你如何评价?
- 如何基于AngularJS部分视图动态更改标头?
- 【声明】前方不设坑位,不收费!~ 我为NET狂官方学习计划
- 正定二次函数的共轭梯度法matlab实现
- 2022年Java秋招面试必看的 | 微服务面试题
- 【老生谈算法】基于主成分分析PCA的matlab人脸识别系统设计与算法原理(论文+程序源码)——人脸识别算法
- 本特利传感器330103-00-05-10-02-00
- Jmeter 压测工具使用手册(完整版)
- Android开发之本地音乐播放器(简单粗暴版)
- Sql Server Update 更新数据
- java的类型_java数据类型
- 【Java】抽象类和接口的区别