用JAVA录音

略经改动,作者名字忘了不好意思。

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();
// }

}


STM32 HardFault调试:寄存器分析与堆栈回溯实战 HardFault是Cortex-M内核中最关键的不可屏蔽异常,本质是处理器对非法指令执行、内存访问越界、堆栈溢出等底层硬件错误的强制响应。其原理根植于ARMv7-M异常模型,通过自动压栈保存xPSR/PC/LR等核心寄存器实现上下文捕获。技术价值在于为嵌入式系统提供确定性故障归因能力,支撑高可靠工业设备开发。典型应用场景涵盖FreeRTOS任务崩溃定位、DMA中断越界诊断及MPU保护机制验证。本文聚焦STM32平台,深入解析LR寄存器低4位判别堆栈模式、基于MSP/PSP的PC地址提取方法,并结合Keil 阅读详情

相关推荐

基于STM32设计的智能厨房环境监测报警系统_426

随着天然气、液化石油气等可燃性气体在家庭中的广泛应用,燃气泄漏所引发的安全问题日益突出。针对传统家用可燃气体报警器功能单一、信息获取受限以及缺乏远程监测能力等不足,设计了一种基于STM32单片机的家用可燃气体报警器系统。

725

TargetDataLine、SourceDataLine

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33819479的博客 1944

java 实现一个录音

java 实现一个录音java 实现一个录音java 实现一个录音

java获取麦实现语音聊天

javaTargetDataLine 接口提供从目标数据行的缓冲区读取所捕获数据的方法, SourceDataLine 接口提供将音频数据写入数据行的缓冲区中的方法。 如从音频捕获设备获取其数据的数据行。 调用start方法开始执行操作。 调用stop方法停止。 package chat; import javax.swing.JTextArea; /** * @a...

weixin_34292959的博客 1356

Java实现网络语音信号传送

下面就针对前面提出的问题讨论一下解决的办法。  1 双方之间的网络连接  Java在这方面有其独特的优势,Java提供了丰富的网络类库的支持,可以轻松编写多种类型的网络通信程序。在我下面的例子中我就使用了TCP/IP协议,通过Java的Socket类进行编程。  2 音频信号的采集和回放以及音频数字信号的编码与解码  在解决这两个问题的时候,在网上很幸运地通过一些文章的介绍,找到了Answer M

xwchen的专栏 4145

1.Java实现音频录制和音频播放

java实现音频录制和播放

c1776167012的博客 4510

java实现录音功能

前几次博客中也是用java实现录音机的各种功能,这次是比先前有了一点优化,将录音的功能单独提取出来,这个程序的实现用到了编码器LAME.exe这个的作用是将录音得到的wav文件编码成MP3文件,这样的结果是容量大大减少,因为LAME编码器经测试在编码过程中路径中带有空格问题未能解决,所以只能找了一个笨的方法,为了将其放到指定的文件夹下(这个文件夹路径是带有空格的),所以只能先存放到D盘,然后利用文

liuyun的专栏 2万+

java动态录音_java实现动态录音,声卡有声音进来就自动录音

TargetDataLine是声音的输入(麦克风),而SourceDataLine是输出(音响,耳机).整个过程,请参见下面的程序.(运行后,实时地从麦克风录音,实时输出).import java.io.*;import javax.sound.sampled.AudioSystem;import javax.sound.sampled.AudioInputStream;import javax....

weixin_30767393的博客 982

java添加录音,java录音程序

本人网上收集的两个java录音程序,文章出处不记得了.程序1:import javax.sound.sampled.*;import javax.swing.JFrame;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.awt.Toolkit;import javax.swing.J...

weixin_33849892的博客 166

java录音程序

本人网上收集的两个java录音程序,文章出处不记得了.程序1:   import javax.sound.sampled.*; import javax.swing.JFrame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.Toolkit; imp...

renjunfu的博客 231

Java录音并播放

介绍 用Java该怎么实现录音以及播放声音的效果呢? 录音 [codesyntax lang="java"] /** * Copyright By suren. * You can get more information from my website: * http://surenpi.com */ package org.suren.talk.util; im

Jenkins中文社区 1416

java录音

Java录音库 在Java开发中,有时候我们需要录制音频,比如制作语音识别应用、音频编辑软件等。为了实现音频录制功能,我们可以使用Java录音库来帮助我们实现这一功能。Java录音库提供了一些API,可以方便地对音频进行录制、播放、编辑等操作。 Java录音库的作用 Java录音库主要用于处理音频相关的操作,包括录音、播放...

weixin_37042133的博客 211

java分多次录音,Java awt 录音 长时间 录音 (3)

import javax.sound.sampled.*;import javax.swing.JFrame;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.awt.Toolkit;import javax.swing.JPanel;import java.awt.event.Act...

weixin_34957720的博客 175

java 录音_java awt 实现 录音(1)

package com.company.test3;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.InputStream;import java.awt.Button;import java.awt.Frame;import ja...

weixin_28807463的博客 211

java 网页 录音_基于Java录音机(浏览器访问,方便远程控制)

packageme.muphy.servicce;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.stereotype.Service;import javax.sound.sampled.*;import java.io.*;importjava.text.SimpleDateF...

weixin_39918128的博客 513

java 网页 录音_Java+FlashWavRecorder实现网页录音并上传

【注意】【前言】肯定有需求要网页录音,并且要上传。这奇葩需求。然后找到了FlashWavRecorder,【原始版本号】1.下载在上面的地址下载zip解压之后,目录里面有个index.html。打开之后这效果:2.录音权限必须保证你的电脑有麦克风,也就是说台式机你得有耳麦。笔记本保证麦克风没有坏掉。有麦克风的情况下,点击上面的红框内的button。然后选择同意。例如以下:可能有的人会说我点了没反应...

weixin_39897267的博客 341

简单实现音频录制

简单采用JFrame 展示音频录取功能实现 public class MyRecorder extends JFrame implements ActionListener { /** *  */ private static final long serialVersionUID = 1L; // 定义录音格式 AudioFormat af = null; // 定义目标

WiteWater的博客 1269

java 录音_java实现录音功能,并以WAV格式保存

private static TargetDataLinetargetDataLine ;private static AudioFormat audioFormat;public void captureAudio(){try {// 构造具有线性 PCM 编码和给定参数的 AudioFormat。audioFormat = getAudioFormat();// 根据指定信息构造数据行的信息...

weixin_42306054的博客 1495

java实现一个录音播放的功能

需求: 1.实现可以从麦克风进行录音 2.可以停止录音 3.实现播放录音内容 4.并将所录的mp3文件全部存到F:/语音文件夹,语音的文件名以当前时间命名(java中是换算成秒),其中文件夹程序自己创建,不用担心出错 程序如下: import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.

liuyun的专栏 1万+

java实现动态录音,声卡有声音进来就自动录音

TargetDataLine是声音的输入(麦克风),而SourceDataLine是输出(音响,耳机). 整个过程,请参见下面的程序.(运行后,实时地从麦克风录音,实时输出). import java.io.*; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.AudioInputStream; imp

ycb1689的专栏 1万+

摩托罗拉Mag One A8i对讲机写频软件(Mag One A8i对讲机写频工具)V1.0 正式版.rar

摩托罗拉数模两用对讲机 A8i 写频软件,亲测能用!

上一篇: applet的数字签名
下一篇: 使用HttpURLConnection上传文件
JavaNoob
博客等级 码龄19年 4粉丝 100原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值