快速业务通道

Java声音技术详解 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
示例文件与applet在相同目录或文件夹下的。

import java.applet.*; import java.awt.event.*; public class PlayAudio extends Applet implements MouseListener { AudioClip audio; public void init() { audio = getAudioClip(getDocumentBase(), "flute+hrn+mrmba.au"); addMouseListener(this); } public void mousePressed(MouseEvent evt) { if (audio != null) audio.play(); } public void mouseEntered (MouseEvent me) { } public void mouseExited (MouseEvent me) { } public void mouseClicked (MouseEvent me) { } public void mouseReleased(MouseEvent me) { } }

注意: 在许多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。

Java声音技术详解 - 编程入门网

当一个Channel打开时,它为自己保留了系统资源 ,并且当它结束时,这些资源被释放给其他的应用程序和对象使用。用isOpen()方法可以查询Channel是打开还是关闭的。数据的处理通常由子界面方法比如read()方法来启动,这部分在InputChannel界面说明描述 (请看JAVA声音 API的说明书)。

处理方法使Channel处于负责输入或输出音频数据的状态。用isActive方法可以识别Channel是否处于这种状态。通过调用pause()方法可以使通道处于暂停状态,此状态可以通过isPaused()方法判别。当通道被暂停时,有三种选择:保留数据(缺省),用flush()方法丢弃内部缓冲器中的数据,或用drain()方法使内部缓存中的数据被立即处理。

对象事先可以注册,这样每当通道状态改变时它都可以收到通告信息。该注册对象必须实现Channel.Listener界面,该界面仅包含一个方法update()。当Channel打开、结

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号