利用纯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播放音频的时候,会出现没有声音的情况.经过长时间探索,没有找到特别好的解决 ...
随机推荐
- javascript 和 jquery 语法上的一些区别
jQuery 能大大简化 Javascript 程序的编写,我最近花时间了解了一下 jQuery,把我上手过程中的笔记和大家分享出来,希望对大家有所帮助.要使用 jQuery,首先要在 HTML 代码 ...
- 前后端分离--构建前端Mock Server--windows部署rap
mock:模拟的,虚假的 mock server:模拟服务,模拟请求,模拟虚假数据 为了前后端更好的分工,接口文档是必须的,前后端都根据接口文档写代码,然后对接接口就行了. 但是,后端跟不上前端节奏, ...
- H TML5 之 (4) 小项目一 时钟
这里做一个HTML5 入门的练手,一个小时钟项目,可以再上面拓展很多,程序员培养的就是思想 <!DOCTYPE HTML> <html> <head> <ti ...
- a标签的简单用法
1.href="#"的作用:页面中有滚动,可以直接回到顶部. <a href="#">回到最顶端</a> 2.href="ur ...
- kettle不能正常自动获取字段
Unable to close prepared statement after determining SQL layoutYou have an error in your SQL syntax ...
- 解决GDB输出Qt内置类型的显示问题
自从GDB 7.0之后,就加入了Pretty-Printer的这个概念.简单理解就是他可以让你用Python写一串脚本,然后让gdb去读取这串脚本后,可以自由的输出由你想自己定义的格式.我们直接举个简 ...
- 问题:Bringing up interface eth0: Device eth0 does not seem to be present,delaying initialization. [FAILED]—— 找不到网卡。
克隆虚拟机的时候或其他情况出现以下问题(命令service network restart): Bringing up interface eth0: Device eth0 does not ...
- 关于C#的那点事........
起源 C#(读做C-sharp)编程语言是由微软公司的Anders Hejlsberg和 Scott Willamette领导的开发小组专门为.NET平台设计的语言,它可以使程序员移植到.NET上.这 ...
- linux之GDB常用命令汇总
查看gdb的版本号 (1)rpm -q gdb 会显示是否安装gdb及版本号 (2)gdb --version也可以 breakpoint b main; b 20; 设置断点 breakpoint ...
- 简单学C——第三天
控制结构(二) 前面我们已经了解到了,控制结构中的判断结构,当然switch语句也是判断语句.不过如果if...else...语句你会了,我相信switch语句你也一定会的,它们的功能都是差不 ...