AudioSystem类充当取样音频系统资源的入口点。此类允许查询和安装在系统上的
混频器。AudioSystem包括许多在不同格式间转换音频数据的方法,以及在音频文
件和流文件之间进行转换的方法。它还提供不用显式处理混频器即可直接从
AudioSystem获得Line的方法
AudioFormat 是在声音流中指定特定数据安排的类。通过检查以音频格式存储的信息,可以发现在二进制声音数据中解释位的方式。
Line.Info类
Line.Info对象包含关于行的信息。只有Line.Info本身提供的信息是该行的Java类。Line.Info子类添加该行的其他种类的信息。这些附加信息取决于通过Line.Info子类所描述的行种类实现的Line子接口。
DataLine.Info类
除了继承自超类Line.Info的类信息以外,DataLine.Info还提供特定于数据行的其他信息。这些信息包括:受数据行支持的音频格式 其内部缓冲区的最大和最小
接口SourceDataLine
源数据行是可以写入数据的数据行。它充当其混频器的源。应用程序将音频字节写入源数据行,这样可处理字节缓冲并将它们传给混频器。混频器可以将这些样本与取自其他源的样本混合起来,然后将该混合物传递到输出端口之类的目标(它可表示声卡上的音频输出设备)
程序事例:
import java.io.File;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.SourceDataLine;
public class Playtest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
AudioInputStream ais = AudioSystem.getAudioInputStream(new File(
"c:\\abc.wav"));// 获得音频输入流
AudioFormat baseFormat = ais.getFormat();// 指定声音流中特定数据安排
System.out.println("baseFormat="+baseFormat);
DataLine.Info info = new DataLine.Info(SourceDataLine.class,
baseFormat);
System.out.println("info="+info);
SourceDataLine line = (SourceDataLine) AudioSystem.getLine(info);
// 从混频器获得源数据行
System.out.println("line="+line);
line.open(baseFormat);// 打开具有指定格式的行,这样可使行获得所有所需的系统资源并变得可操作。
line.start();// 允许数据行执行数据 I/O
int BUFFER_SIZE = 4000 * 4;
int intBytes = 0;
byte[] audioData = new byte[BUFFER_SIZE];
while (intBytes != -1) {
intBytes = ais.read(audioData, 0, BUFFER_SIZE);// 从音频流读取指定的最大数量的数据字节,并将其放入给定的字节数组中。
if (intBytes >= 0) {
int outBytes = line.write(audioData, 0, intBytes);// 通过此源数据行将音频数据写入混频器。
}
}
} catch (Exception e) {
}
}
}
分享到:
相关推荐
JAVA 正则表达式 事例
java Socket心跳事例
java 编程事例 1200java 编程事例 1200java 编程事例 1200java 编程事例 1200java 编程事例 1200java 编程事例 1200java 编程事例 1200java 编程事例 1200java 编程事例 1200java 编程事例 1200java 编程事例 1200
java类的描述和使用,讲述了一段java代码的类的构成。
PB6.5调用微软TTS5.1语音引擎(中文),实现字符串的语音播放。有事例代码,可以在PB6.5下面测试运行。安装好 微软TTS5.1语音引擎(中文)后,在控制面板-》语音 设置播放的男女声音。
java数据处理事例.rar
java学习代码事例,很适合初学者,要的来下载哦
Java发牌程序事例设计模式Java发牌程序事例设计模式Java发牌程序事例设计模式Java发牌程序事例设计模式Java发牌程序事例设计模式
java ssh最小事例demo myeclipse项目导进去就能用!
这是一个文本转语音的事例程序,使用了TTS组件,很强大。
他是一个多线程应用的例。多初学者来说是个不错的选择
用VB6.0编写的语音识别源代码,很有参照性,对于初学语音识别很有启发性.
是一些关键代码,需要完整代码请绕道, 集合 反射,正则.....
java事例
java 泛型基础简单事例
一个完整的小demo,是war包 解压后可以直接放进eclipse或者myeclipse就可以完美的运行,简单实用,包含增删改查的功能,出血注解模式的首选
java2 教程和事例
java Log4j 事例和讲解 基本功能全讲解 与文档配合使用更有效果哦!
是一个Java程序,很好的解释了网络蜘蛛
包含了多个小事例为Java Web初学者做参考