1.从MIC读入声音
//8000,11025,16000,22050,44100 具有此格式的声音每秒播放和录制的帧数
float sampleRate = 16000.0F;
//8,16 存储每个快照的位数
int sampleSizeInBits = 16;
//1,2 单声道 立体声
int channels =1;
//true,false
boolean signed = true;
//true,false 字节序
boolean bigEndian = false;
audioFormat = new AudioFormat(sampleRate, sampleSizeInBits, channels, signed, bigEndian);
//STEP2:受数据行支持的音频格式 其内部缓冲区的最小和最大大小
DataLine.Info info = new DataLine.Info(TargetDataLine.class, audioFormat);
//STEP3:从系统取样音频系统资源的入口点 音频捕获设备获取其数据的数据行
TargetDataLine targetDataLine = (TargetDataLine)AudioSystem.getLine(info);
//STEP4:打开
targetDataLine.open(audioFormat);
//STEP5:开始
targetDataLine.start();
bos = new ByteArrayOutputStream();
int size = 0;
boolean isContinue = true;
int count = 0;
long startTime = System.currentTimeMillis();
while (isContinue)
{
int readed = targetDataLine.read(temps, 0, temps.length);
if (readed > 0)
{
bos.write(temps, 0, readed);
size += readed;
}
System.out.println((System.currentTimeMillis() - startTime) + ":" + size + " count: " + count + " "
+ readed);
if (count++ > 10)
{
isContinue = false;
}
}
bos.close();
System.out.println("录音结束");
2.播放声音 (中间含保存)
byte[] audioData = bos.toByteArray();
System.out.println(audioData.length);
InputStream bis = new ByteArrayInputStream(audioData);
audioInputStream = new AudioInputStream(bis, audioFormat, audioData.length / audioFormat.getFrameSize());
DataLine.Info dataLineInfo = new DataLine.Info(SourceDataLine.class, audioFormat);
sourceDataLine = (SourceDataLine)AudioSystem.getLine(dataLineInfo);
sourceDataLine.open(audioFormat);
sourceDataLine.start();
int readed = 0;
long startTime = System.currentTimeMillis();
int count = 0;
//保存
File file = new File("D:/test1.wav");
AudioSystem.write(audioInputStream, AudioFileFormat.Type.WAVE, file);
audioInputStream.reset();
while ((readed = audioInputStream.read(temps, 0, temps.length)) != -1)
{
System.out.println((System.currentTimeMillis() - startTime) + " count: " + count + " " + readed);
sourceDataLine.write(temps, 0, readed);
count++;
}
sourceDataLine.drain();
sourceDataLine.close();
3.从本地读取并播放
File f = new File("F:/workspace/test/sound/hero-attack1.wav");
AudioInputStream audioStream = AudioSystem.getAudioInputStream(f);
AudioFileFormat format = AudioSystem.getAudioFileFormat(f);
DataLine.Info dataLineInfo = new DataLine.Info(SourceDataLine.class, format.getFormat());
sourceDataLine = (SourceDataLine)AudioSystem.getLine(dataLineInfo);
sourceDataLine.open(format.getFormat());
sourceDataLine.start();
int readed = 0;
while ((readed = audioStream.read(temps, 0, temps.length)) != -1)
{
sourceDataLine.write(temps, 0, readed);
}
sourceDataLine.drain();
sourceDataLine.close();
分享到:
相关推荐
接下来,我们将详细探讨如何利用Java声音技术实现声音的采集与播放。 首先,我们需要了解Java声音技术的两个主要包:`javax.sound.sampled` 和 `javax.sound.midi`。`javax.sound.sampled` 包提供了一系列的API用于...
Java声音技术浅析 在Java世界里,多媒体技术的集成一直是开发者关注的焦点,其中声音技术尤为关键。本文将深入探讨Java对声音处理的支持,包括Applet中的声音播放、Java应用程序中的声音处理以及JavaX中Sound包的...
摩托罗拉q9h可以用的Java声音补丁,wm系统sp平台
首先,"介绍java+声音处理.pdf"可能是一个详细的文档,涵盖了Java声音API的基础知识。Java Sound API是Java平台的标准组件,用于播放、录制、处理和合成音频。它包括几个关键组件,如AudioSystem类,用于全局音频...
本资源“Java声音播放程序源代码.zip”提供了一套完整的Java源代码,可以帮助开发者理解和实现音频播放功能。下面将详细介绍这个压缩包中的内容以及相关Java音频处理的知识点。 首先,`readme.md`文件通常包含项目...
### Java声音处理:使用Java Sound API进行Applet编程 #### 整体呈现目标 本教程旨在教授如何利用Java Sound API创建能录制与播放音频数据的Applet。通过本教程,您将了解使用Java Sound API在Applet中实现声音功能...
Java声音技术是一个重要的领域,尤其对于那些希望在Java应用程序中集成音频功能的开发者而言。这个“Java声音技术(CHM)”文档很可能包含了全面的指南和详细的教程,帮助开发者理解和利用Java提供的声音API来实现...
本主题将深入探讨如何利用Java来实现声音播放程序,并基于提供的"Java声音播放程序源代码"进行分析。 首先,Java提供了`javax.sound`包,其中包含`javax.sound.sampled`子包,它是Java标准版(Java SE)中处理音频...
【Java声音处理培训资料】 Java声音处理是Java编程领域中的一个重要分支,它允许开发者创建、播放、录制和处理音频文件。在Java中,声音处理主要依赖于Java Sound API(Java Sound Application Programming ...
Java声音技术是Java平台提供的一种用于处理音频数据的机制,它允许开发者在应用程序中播放、录制、处理和合成声音。本教程将深入讲解Java声音技术的各个方面,旨在帮助你理解和运用这一技术。 首先,Java声音系统的...
JAVA源码Java声音播放程序源代码JAVA源码Java声音播放程序源代码
这个"java源码:Java声音播放程序源代码.rar"压缩包包含了一个使用Java实现的声音播放程序的源代码,这对于初学者和有经验的开发者来说都是一个宝贵的资源。通过分析和学习这些源代码,我们可以深入理解Java如何处理...
Java声音播放程序是一种基于Java平台的应用程序,它能够读取并播放各种音频文件。这个压缩包文件"Java声音播放程序源代码.7z"包含了实现这一功能的源代码,是学习和理解Java音频处理的好资源。本文将深入探讨Java中...
java源码资源Java声音播放程序源代码提取方式是百度网盘分享地址
Java声音技术是Java平台上用于处理和播放音频及MIDI音乐的一种功能强大的API,它使得开发者能够集成高质量的声音到他们的应用程序中。Java Sound API是Java 2平台的一部分,它极大地提升了Java处理音频的能力,从...
声音识别语音识别资料078917JAVA声音技术.zip
### Java播放本地声音实现系统报警 #### 背景与目的 在开发应用程序时,有时候我们需要为用户添加声音反馈功能,比如系统报警提示。通过Java编程语言,我们可以轻松地实现这一功能。本篇文章将详细介绍如何利用...
在Java编程中,实现声音提示是一项实用的功能,可以增加用户交互体验。Java提供了多种方法来播放音频,使得开发者能够在程序中轻松地添加声音效果或通知。以下是对这一主题的详细探讨: 1. **Java Sound API** ...