用 Java 实现音频播放
桌面 的性能日益提高, 虚拟机的优化技术也不断获得突破,这一切使得用 处理实时信号
成为可能。本文将通过设计和构造一个支持实时 、 和 音频格式解码回放的 音乐播
放器,阐述用 编写音频处理程序的思路和一般过程。
是一个小巧的低层 ,支持数字音频和 数据的记录回放。在 之前,
是一个标准的 扩展 ,但从 的 版开始, 就被包含到 之
中。由于 有着跨平台(操作系统、硬件平台)的特点,基于 的音频处理程序(包括本
文的程序)能够在任何实现了 的系统上运行,无需加装任何支持软件。
一、JavaSound 的体系结构
当前 的 随同 媒体框架(, !")一起发布,主
页在 #$% &%'$#( # ),适合 以及更高的版本。除了 实现的
之外,还有一个源代码开放的 实现是 *'$,主页
在 +''&,!!!''$。
图一描述了 的体系结构,虚线表示 的 标准定义的 调用。上面
一根虚线表示我们编写音频处理程序要调用的 , 包含在 #-$$ &. 和
#-$ 包中。两根虚线之间的部分就是 的具体实现。
/
图一: 体系结构
就象上面一根虚线表示的 具有统一标准一样,在所有的 实现中,图一下面一根虚线
表示的 (服务提供者接口, %')%)也是统一的。 的作用是以插件
(.()的形式提供自定义的扩展模块,我们只要提供与 兼容的插件扩展模块,就可以在不改变