选择显示字体大小

用java实现音频播放


  桌面pc的性能日益提高,java虚拟机的优化技术也不断获得突破,这一切使得用java处理实时信号成为可能。本文将通过设计和构造一个支持实时mp3、wav和ogg音频格式解码/回放的java音乐播放器,阐述用javasound api编写音频处理程序的思路和一般过程。

  javasound是一个小巧的低层api,支持数字音频和midi数据的记录/回放。在jdk 1.3.0之前,javasound是一个标准的java扩展api,但从java 2的1.3.0版开始,javasound就被包含到jdk之中。由于java有着跨平台(操作系统、硬件平台)的特点,基于javasound的音频处理程序(包括本文的程序)能够在任何实现了java 1.3+的系统上运行,无需加装任何支持软件。

  一、javasound的体系结构

  当前jdk的javasound api随同java媒体框架(jmf,java media framework)一起发布,主页在java.sun.com/products/java-media/jmf/,适合jdk 1.1以及更高的版本。除了jdk实现的javasound api之外,还有一个源代码开放的javasound实现是tritonus,主页在http://www.tritonus.org/。

  图一描述了javasound api的体系结构,虚线表示sun的javasound标准定义的api调用。上面一根虚线表示我们编写音频处理程序要调用的api,javasound api包含在javax.sound.sampled和javax.sound.midi包中。两根虚线之间的部分就是javasound api的具体实现。

 
  图一:javasound体系结构

  就象上面一根虚线表示的api具有统一标准一样,在所有的javasound实现中,图一下面一根虚线表示的spi(服务提供者接口, service provider interface)也是统一的。spi的作用是以插件(plug-in)的形式提供自定义的扩展模块,我们只要提供与spi兼容的插件扩展模块,就可以在不改变api的情况下扩展音频处理程序的能力。spi包含在java.sound.sampled.spi和javax.sound.midi.spi包中。

  例如,假设有一个只能播放wav文件的程序,我们只要增加一个支持mp3文件解码的插件模块,就可以在不改动播放程序的任何一行代码的前提下,为这个播放程序添加播放mp3的能力。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons