略经改动,作者名字忘了不好意思。
package cn.net.badboy;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import javax.sound.sampled.AudioFileFormat;
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.TargetDataLine;
public class CopyOfJDKAudioRecorder extends Thread {
//產生TargetDataLine類別的變數m_targetdataline
static TargetDataLine m_targetdataline;
//透過TargetDataLine介面(繼承自DataLine)與音效卡溝通 target目標
//產生AudioFileFormat.Type類別的變數m_targetType Format格式
static AudioFileFormat.Type m_targetType;
//產生AudioInputStream類別的變數m_audioInputStream stream流
static AudioInputStream m_audioInputStream;
static File m_outputFile;//產生File類別的變數 m_outputFile
static ByteArrayOutputStream bos = new ByteArrayOutputStream();
static byte[] buf;
static boolean m_bRecording;//後面需用到布林函數 True,False
public CopyOfJDKAudioRecorder(TargetDataLine line,
AudioFileFormat.Type targetType, File file) {
m_targetdataline = line;
m_audioInputStream = new AudioInputStream(line);
m_targetType = targetType;
m_outputFile = file;
}
public static void AudioRecorder() {
String Filename = "d:/JDKAudioRecord.wav ";
File outputFile = new File(Filename);
//我們一開始先在主程式裡指定聲音檔的檔名為
//JDKAudioRecorder.wav
// String Filename = "JDKAudioRecord.wav ";
//接著指定存檔的資料夾,預設存在相同的資料夾
// File outputFile = new File(Filename);
AudioFormat audioFormat = null;
//audioFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,44100.0F, 16, 2, 4, 44100.0F, false);
audioFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,44100F, 8, 1, 1, 44100F, false);
//再來設定和取得音效檔的屬性
// audioFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 44100.0F, 16, 2, 4, 44100.0F, false);
DataLine.Info info = new DataLine.Info(TargetDataLine.class,
audioFormat);
TargetDataLine targetDataLine = null;
//然後透過TargetDataLine介面(繼承自DataLine)與音效卡溝通
// DataLine.Info info = new DataLine.Info(TargetDataLine.class, audioFormat);
// 接著做例外處理,當聲音裝置出錯或其他因素導致錄音功能無法被執行時,程式將被終止
try {
targetDataLine = (TargetDataLine) AudioSystem.getLine(info);
targetDataLine.open(audioFormat);// try{ }可能發生例外的敘述
} catch (LineUnavailableException e)//catch{ }處理方法
{
System.out.println("無法錄音,錄音失敗 ");
e.printStackTrace();
System.exit(-1);
}
AudioFileFormat.Type targetType = AudioFileFormat.Type.AU;
CopyOfJDKAudioRecorder recorder = null;
recorder = new CopyOfJDKAudioRecorder(targetDataLine, targetType, outputFile);
recorder.start();
}
public void start() {
m_targetdataline.start();
super.start();
System.out.println("recording...");
}
public static void stopRecording() {
m_targetdataline.stop();
m_targetdataline.close();
m_bRecording = false;
buf = bos.toByteArray();
System.out.println("stopped.");
}
public void run() {
try {
//AudioSystem.write(m_audioInputStream, m_targetType, m_outputFile);
AudioSystem.write(m_audioInputStream, m_targetType, bos);
System.out.println("after write() ");
} catch (IOException e) {
e.printStackTrace();
}
}
// public static void main(String args[])
// {
// CopyOfJDKAudioRecorder.AudioRecorder();
// }
}
分享到:
相关推荐
Java录音小程序(3)个Java录音小程序(3)个Java录音小程序(3)个Java录音小程序(3)个Java录音小程序(3)个Java录音小程序(3)个Java录音小程序(3)个Java录音小程序(3)个Java录音小程序(3)个Java录音小...
java录音小程序,也是网载的,本人测试录音成功,分享给有需要的人。 提示:如果你使用无法录音,请试试在其它机器上如何,可能是你机器的问题,本人就吃过这样的亏。
录音代码.java 录音代码.java 录音代码.java
项目包含39个文件,主要使用Java编程语言。文件类型包括10个XML配置文件、10个WEBP图片文件、9个Java源代码文件、3个Gradle文件、2个GIT忽略文件、2个Properties配置文件、1个PRO项目文件、1个Gradlew文件和1个BAT...
java实现麦克风自动录音 获取麦克风音频数据,在控制台输入字母end按回车,则结束录音;
总的来说,实现一个Java录音机需要对Java Sound API有深入的理解,包括音频格式、数据流的处理以及资源管理。通过上述步骤,你可以创建一个基本的录音程序,根据需求还可以扩展功能,如添加播放、剪辑、音效处理等。
一个用java写的简单的录音机,亲自测试没有问题,可以生成wav声音,格式可调
本篇文章将深入探讨如何使用Java与FlashWavRecorder技术实现网页录音并上传的功能。 首先,我们要明白Java和FlashWavRecorder在这一过程中的角色。Java是一种广泛使用的后端编程语言,它能够处理服务器端的逻辑,...
java调用科大讯飞语音转写接口,实现会议录音,并实现记录会议既要功能!
通过java实现的录音功能,可以修改录音存储的位置
本篇将深入探讨如何利用Java Sound API实现简单的录音(音频采集)功能。 首先,我们关注的是"SimpleRecord.java"文件,这是实现录音功能的核心代码。在这个文件中,我们将看到如何创建一个AudioInputStream对象,...
在Java编程环境中,录音与播放功能是通过Java Sound API实现的。这个API提供了一系列的类和接口,使得开发者能够处理音频输入、输出以及处理。在这个"java 录音与播放材料"的压缩包中,可能包含了相关的代码示例、...
录音机的使用情况,一个简单的java程序。可以帮助人们了解和使用java然后学习java。里面运用了一些简单的类和方法,来显示录音机的点亮使用情况
根据提供的文件信息,我们可以分析出该Java程序是一个简单的录音机应用程序。下面将对该程序的关键知识点进行详细解析。 ### 关键知识点 #### 1. Java IO流处理 在本程序中,作者利用了Java中的IO流来进行数据的...
Java录音程序是使用Java语言开发的一种能够从计算机的麦克风捕获音频流并将其保存为WAV格式文件的应用。在本文中,我们将深入探讨如何利用Java实现这一功能,以及涉及的相关技术点。 首先,Java提供了Java Sound ...
- **录音**:利用Java的`javax.sound.sampled`包来捕获和录制音频。 - **上传音频**:将录制的音频数据转换为API接受的格式,如PCM或WAV,然后上传到语音识别服务。 - **获取结果**:服务返回识别后的文本,你...
- 要实现录音功能,可以使用Java的`javax.sound.sampled`包。它提供了对音频输入和输出的低级控制,包括麦克风的音频输入。 - 音频数据需要实时捕获并存储,与视频帧同步。 4. **暂停与恢复** - 录制过程中,...
有需要的请留下您的评论,如果需要更加丰富的功能,大家讨论一起学习下,呵呵
用java写了个录视频的小程序, 录制后文件默认保存在系统临时目录, 录制视频和麦克风声音, 播放时回车键进入全屏, esc退出全屏, 希望能对有兴趣的朋友提供参考 已重写新版原生java生成FLV格式视频文件 请看...