Java声音技术详解 - 编程入门网
示例文件与applet在相同目录或文件夹下的。
注意: 在许多JAVA2技术书籍中,mouseDown()方法确实是JAVA 1.0事件模型的一部分。使用该方法会有一定的危险,因为该方法在将来可能不会被支持。在JAVA2平台下将MouseListener与mousePressed结合使用是优先的选择。 API 1.0-质的飞跃 注意:下列备注是以JAVA API的早期版本0.86为基础的。虽然目前这里讨论的大多数对象和概念与过去保持一致,但由于该API版本已经终止,出现某些改变的可能是存在的。 JAVA声音 1.0 API为JAVA平台定义了一整套的基本的底层音频处理功能。它提供如下接口为: 音频捕获和播放 IDI合成及序列化 这两个主要的功能模块在各自的程序包中提供。 javax.media.sound.sampled-该程序包明确地说明了捕获、混合以及回播数字采样音频的界面。 javax.media.sound.MIDI-该程序包提供MIDI合成、序列化以及事件传送的界面。 JAVA 1.0 API具备如下特性: 数字音频 频捕获-从输入源例如麦克风进行数据捕获。 音和重播-将各种输入源的声音混合并重播。 制与编码-调整增益、定位、回音处理等等,以及进行格式转换。 态及其提示-当重播开始和结束、设备打开或关闭以及其他相关事件发生时接收事件。 对MIDI的支持 MIDI消息-交换消息(打开音符,关闭音符,诸如此类) 合成-从MIDI数据装入乐器并产生声音。 序列化-装入一个MIDI序列,开始和停止播放,以及调整节奏。 工具 件输入输出-读写通用音频文件例如WAV,AIFF及MIDI 置-查询系统来获得组件和设备的信息;安装或取消编码、文件分析器和设备等。 Java声音技术详解(4)时间:2010-12-13数字化音频 通道 Kara Kytle, JAVA声音 API主管工程师和系统设计师说:"Channel是音频管道中的基本功能部件"。实现Channel界面的类代表着该"管道"的一个元素,例如硬件设备,一个声音合成器,或者是一个单音频流。 InputChannel和 OutputChannel继承了Channel,分别用于读入被捕获的数据和为播放写数据。子界面Clip支持对预装入的音频数据循环播放和重新定位。Device表示任何用于捕获、播放或混和音频的硬件或软件设备。 该界面的层次结构如下图所示。参考包javax.media.sound.sampled。 当一个Channel打开时,它为自己保留了系统资源 ,并且当它结束时,这些资源被释放给其他的应用程序和对象使用。用isOpen()方法可以查询Channel是打开还是关闭的。数据的处理通常由子界面方法比如read()方法来启动,这部分在InputChannel界面说明描述 (请看JAVA声音 API的说明书)。 处理方法使Channel处于负责输入或输出音频数据的状态。用isActive方法可以识别Channel是否处于这种状态。通过调用pause()方法可以使通道处于暂停状态,此状态可以通过isPaused()方法判别。当通道被暂停时,有三种选择:保留数据(缺省),用flush()方法丢弃内部缓冲器中的数据,或用drain()方法使内部缓存中的数据被立即处理。 对象事先可以注册,这样每当通道状态改变时它都可以收到通告信息。该注册对象必须实现Channel.Listener界面,该界面仅包含一个方法update()。当Channel打开、结 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |