利用纯java捕获和播放音频
参考:
1.http://www.cjsdn.net/doc/jdk60/javax/sound/sampled/package-summary.html
2.http://www.cjsdn.net/doc/jdk60/javax/sound/sampled/package-tree.html
软件包 javax.sound.sampled
提供用于捕获、处理和回放取样的音频数据的接口和类。
请参见:
描述
| 接口摘要 | |
|---|---|
| Clip | Clip 接口表示特殊种类的数据行,该数据行的音频数据可以在回放前加载,而不是实时流出。 |
| DataLine | DataLine 将与介质相关的功能添加到其超接口 。 |
| Line | Line 接口表示单声道或多声道音频供给。 |
| LineListener | 可以注册实现 LineListener 接口的类的实例来接收行状态更改时发生的事件。 |
| Mixer | 混频器是一个具有一行或多行的音频设备。 |
| Port | 端口是往返于音频输入或输出线与音频设备之间的简单线路。 |
| SourceDataLine | 源数据行是可以写入数据的数据行。 |
| TargetDataLine | 目标数据行是可以从中读取音频数据的某种类型的 。 |
| 类摘要 | |
|---|---|
| AudioFileFormat | AudioFileFormat 类的实例描述音频文件,包括文件类型、文件长度(以字节为单位)、文件中包含的音频数据的长度(以示例帧为单位),以及音频数据的格式。 |
| AudioFileFormat.Type | Type 类的实例表示音频文件的标准类型之一。 |
| AudioFormat | AudioFormat 是在声音流中指定特定数据安排的类。 |
| AudioFormat.Encoding | Encoding 类命名用于音频流的数据表示形式的特定类型。 |
| AudioInputStream | 音频输入流是具有指定音频格式和长度的输入流。 |
| AudioPermission | AudioPermission 类表示对音频系统资源的访问权限。 |
| AudioSystem | AudioSystem 类充当取样音频系统资源的入口点。 |
| BooleanControl | BooleanControl 能够在影响行音频的两个可能的设置之间切换。 |
| BooleanControl.Type | BooleanControl.Type 类的实例标识一种 boolean 控件。 |
| CompoundControl | CompoundControl(如图形均衡器)控制两个或多个相关属性,每个属性本身都表示为 Control。 |
| CompoundControl.Type | CompoundControl.Type 内部类的实例标识一种组合控件。 |
| Control | Line 常常具有一个控件(如 gain 和 pan)集合,这些控件都会影响通过行传递的音频信号。 |
| Control.Type | Type 类的实例表示控件的类型。 |
| DataLine.Info | 除了继承自其超类的类信息之外,DataLine.Info 还提供特定于数据行的其他信息。 |
| EnumControl | EnumControl 提供对一组截然不同的可能值的控制,每个值都由一个对象表示。 |
| EnumControl.Type | EnumControl.Type 内部类的实例标识了某种枚举控件。 |
| FloatControl | FloatControl 对象提供对浮点值范围的控制。 |
| FloatControl.Type | FloatControl.Type 内部类的实例标识了某种 float 控件。 |
| Line.Info | Line.Info 对象包含关于行的信息。 |
| LineEvent | LineEvent 类封装某一行每次打开、关闭、启动或停止时向其侦听器发送的信息。 |
| LineEvent.Type | 该 LineEvent.Type 内部类标识行上所发生事件的种类。 |
| Mixer.Info | Mixer.Info 类表示关于音频混频器的信息,包括产品的名称、版本和供应商,以及文本描述。 |
| Port.Info | 该 Port.Info 类扩展了具有其他特定于端口的信息的 ,这些信息包括端口的名称以及该端口是否是其混频器的源或目标。 |
| ReverbType | ReverbType 类提供用于访问应用于音频信号的各种回响设置的方法。 |
| 异常摘要 | |
|---|---|
| LineUnavailableException | LineUnavailableException 是指示某一行因为不可用而无法打开的异常。 |
| UnsupportedAudioFileException | UnsupportedAudioFileException 是指示因为文件没有包含可识别文件类型和格式的有效数据而致使操作失败的异常。 |
软件包 javax.sound.sampled 的分层结构
- 软件包分层结构:
- 所有软件包
类分层结构
- java.lang.Object
- javax.sound.sampled.AudioFileFormat
- javax.sound.sampled.AudioFileFormat.Type
- javax.sound.sampled.AudioFormat
- javax.sound.sampled.AudioFormat.Encoding
- javax.sound.sampled.AudioSystem
- javax.sound.sampled.Control
- javax.sound.sampled.BooleanControl
- javax.sound.sampled.CompoundControl
- javax.sound.sampled.EnumControl
- javax.sound.sampled.FloatControl
- javax.sound.sampled.Control.Type
- javax.sound.sampled.BooleanControl.Type
- javax.sound.sampled.CompoundControl.Type
- javax.sound.sampled.EnumControl.Type
- javax.sound.sampled.FloatControl.Type
- java.util.EventObject (implements java.io.Serializable)
- javax.sound.sampled.LineEvent
- java.io.InputStream (implements java.io.Closeable)
- javax.sound.sampled.AudioInputStream
- javax.sound.sampled.Line.Info
- javax.sound.sampled.DataLine.Info
- javax.sound.sampled.Port.Info
- javax.sound.sampled.LineEvent.Type
- javax.sound.sampled.Mixer.Info
- java.security.Permission (implements java.security.Guard, java.io.Serializable)
- java.security.BasicPermission (implements java.io.Serializable)
- javax.sound.sampled.AudioPermission
- java.security.BasicPermission (implements java.io.Serializable)
- javax.sound.sampled.ReverbType
- java.lang.Throwable (implements java.io.Serializable)
- java.lang.Exception
- javax.sound.sampled.LineUnavailableException
- javax.sound.sampled.UnsupportedAudioFileException
- java.lang.Exception
接口分层结构
- java.util.EventListener
- javax.sound.sampled.LineListener
- javax.sound.sampled.Line
- javax.sound.sampled.DataLine
- javax.sound.sampled.Clip
- javax.sound.sampled.SourceDataLine
- javax.sound.sampled.TargetDataLine
- javax.sound.sampled.Mixer
- javax.sound.sampled.Port
- javax.sound.sampled.DataLine
利用纯java捕获和播放音频的更多相关文章
- Windows PCM音频捕获与播放实现
在WINDOWS下,音频函数有多种类型,如MCI.多媒体OLE控制.高级音频等,使用方法都比较简单.但如果想编写一个功能较强大的音频处理程序,那就必须使用低级音频函数和多媒体文件I/O来控制音频设备的 ...
- 用JAVA捕获屏幕、屏幕录像、播放
http://blog.csdn.net/njchenyi/article/details/447554 用JAVA捕获屏幕.屏幕录像.播放 标签: javaexceptionimageimportn ...
- JAVA按顺序播放多个wav音频
用Java按顺序播放多个音频部件,不是同时播放.代码如下: List<String> files = new ArrayList<String>(); files.add(&q ...
- 利用mciSendString播放音频
最近在写音频播放器,不过有点懒散,开发进度很慢,一天只做了一点点东西.其实就是让程序能播放音频.这个在我大二学winform程序开发时书上有说,那是书上教的是用media player的COM组件,而 ...
- 【转】Android播放音频MediaPlayer的几种方式介绍
接下来笔者介绍一下Android中播放音频的几种方式,android.media包下面包含了Android开发中媒体类,当然笔者不会依次去介绍,下面介绍几个音频播放中常用的类: 1.使用MediaPl ...
- 与众不同 windows phone (41) - 8.0 相机和照片: 通过 AudioVideoCaptureDevice 捕获视频和音频
[源码下载] 与众不同 windows phone (41) - 8.0 相机和照片: 通过 AudioVideoCaptureDevice 捕获视频和音频 作者:webabcd 介绍与众不同 win ...
- java swing 音乐播放器-乐乐音乐
乐乐音乐1.0(本地版) 乐乐音乐是基于musique 开源播放器开发的java swing音乐播放器,实现了mp3.flac.ape.wav等多种音频格式的播放和ksc歌词的解析.制作和显示. 完成 ...
- Android应用开发学习笔记之播放音频
作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz Android支持常用音视频格式文件的播放,本文我们来学习怎样开发Android应用程序对音视频进行操作. Andr ...
- MFC中使用SDL播放音频没有声音的解决方法
本文所说的音频是指的纯音频,不包含视频的那种. 在控制台中使用SDL播放音频,一般情况下不会有问题. 但是在MFC中使用SDL播放音频的时候,会出现没有声音的情况.经过长时间探索,没有找到特别好的解决 ...
随机推荐
- Android多屏幕适配
转载:http://mikewang.blog.51cto.com/3826268/865304 问题: 测试时,发现应用在不同的显示器上显示效果不同(部分文本不能显示完全),自然想到屏幕适配的问题. ...
- CenOs安装中文输入法
http://jingyan.baidu.com/album/d8072ac4434666ec95cefda1.html?picindex=2 查看链接
- 黑马程序员-File类+递归的简单应用
Java File类 Java.io.File Java文件类以抽象的方式代表文件名和目录路径名.该类主要用于文件和目录的创建.文件的查找和文件的删除等. File对象代表磁盘中实际存在的文件和目 ...
- java中事件处理探究
事件的触发可以源于用户,也可以用代码来主动设置事件的发生.如setSelected()java.awt.event中 听众接口 事件类 适配器类 ComponentListener Conta ...
- 读懂IL代码(三)
由于要写毕业论文的缘故,最近比较没有时间写,总是要抽出时间抽出时间.诶,这样的生活比较烦躁. 这一篇主要写委托.类.方法的IL代码,一一来说明. 委托:搞过C#的都应该清楚,委托实际上是一个类.编译器 ...
- ios专题 - GCD(1)
什么是GCD? Grand Central Dispatch或者GCD,是一套低层API,提供了一种新的方法来进行并发程序编写.从基本功能上讲,GCD有点像 NSOperationQueue,他们都允 ...
- 数据库(学习整理)----4--Oracle数据查询(基础点1)
其他: 计算机中的内存是线性的,一维. length('')计算字符的个数,而不是字节的个数 Oracle中的日期类型和数值类型的数据可以做运算符(>,=,<,<>)比较 如果 ...
- C语言带参数的main函数
C语言带参数的main函数 #include<stdio.h> int main(int argc,char*argv[]) { int i; ;i<argc;i++) printf ...
- free() 是如何释放不同内存区块大小的指针?
最初是在知乎上看到这个问题的C++ delete[] 是如何知道数组大小的?,我也挺好奇,所以就作了一番工作. 申请内存时,指针所指向区块的大小这一信息,其实就记录在该指针的周围看下面这段代码: #i ...
- Savelog项目总结回忆
Savelog项目的细节已经不太记得,感觉有些遥远,需要翻回旧的笔记本电脑或者是旧的笔记本. 概述: 本项目采用的Linux C,监听一个或多个特殊的端口,当其中一个端口有发起连接时就产生一个新的线程 ...