java视频音频地处理.pdf

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JavaSound 体系结构 17.3 音频录制与播放--JavaSound JavaSound 是一个小巧的低层API ,支持数字音频和MIDI 数据的记录/ 回放。在JDK 1.3.0 之前,JavaSound 是一个标准的Java 扩展API ,但从Java 2 的1.3.0版开始,JavaSound 就被 包含到JDK 之中。由于Java 有着跨平台(操作系统、硬件平台)的特点,基于JavaSound 的音频处 理程序(包括本文的程序)能够在任何实现了Java 1.3或更高版本的系统上运行, 无须加装任何支持软件。 接下来我们将首先讲解 JavaSound 的体系结构、音频输入/输出原理,然后讲解音频各种处 理的方法。 音频的数据格式。 音频的录制。 音频的播放。 音频的保存。 最后通过两个实例程序演练JavaSound 。 录音机程序。 MP3音乐播放器。 17.3.1 JavaSound 体系结构 使用JavaSound API,可以实现各种基于声音的应用,例如声音录制、音乐播放、网络电话、 音乐编辑等。JavaSound API 又以各种解码和合成器SPI (Service Provider Interface,服务提 供者接口)为基础,实现各种音乐格式的解码与转码。 它们之间的关系如图17-5所示。 图17-5 JavaSound 体系结构 SPI 的作用是以插件(Plug-In )的形式提供自定义的扩展模块,我们只要提供与SPI 兼容的 插件扩展模块,就可以在不改变API 的情况下扩展 音频处理程序的能力。例如,假设有一 个只能播放WAV 文件的程序,我们只要增加一个支持MP3文件解码的插件模块,就可以在 不改动播放程序的任何一行代码 的前提下,为这个播放程序添加播放MP3 的能力。在后文 的MP3音乐播放器程序中我们将演示该模块的安装与使用。 JavaSound API 包含在javax.sound.sampled 和javax.sound.midi 包中,分别用以处理数字音频 simpled-audio 和 MIDI 。SPI 包含在java.sound.sampled.spi 和javax.sound.midi.spi 包中,提 供了第三方的扩展接口。 17.3.2 音频输入/输出原理 17.3.2 音频输入/输出原理 音频的输入和输出需要分别使用类TargetDataLine 和SourceDataLine,分别代表了输入和输 出的设备,它们都实现了 Line 接口。Line 接口用来关闭/打开设备、注册事件监听器,以 及提供一些用来调整声音效果的对象,例如调整音量大小的对象。AudioSystem 在 JavaSound 体系中起着一个工厂(Factory )类的作用,提供了一系列的静态方法,我们通过这些静态 方法来获取JavaSound 系统默认配置 的资源。它们之间的关系如图17-6所示。 在处理输入音频时,对于来自各种音频输入端口的信号,例如麦克风、CD 播放器、磁带播 放器等,可以在它们到达TargetDataLine 之前,利用混频器控制输入混频,最后在程序中通 过TargetDataLine 获得数字化的音频输入流。 类似地,在处理输出音频时,混频器用来对一系列来自SourceDataLine 的数据进行混频处理, 经处理后的信号可输出到各种输出端口,例如扬 声器、耳机等。SourceDataLine 是一个可 写入音频信号数字流的设备,例如,我们可以从一个 WAV 文件读取内容写入到 SourceDataLine,然后再通过扬声器输出。 其流程图如图17-7所示。 图17-6 类关系图 图17-7 音频输入输入流程图 输入到混频器的信号也可以来源于剪辑(Clip )。剪辑是一个包含一段完整音频数据流的设 备,或者说,剪辑就是一个缓存在内存中的完整音频数据流。在一些要求反复播放音乐片段 的场合,例如游戏的背景音乐,剪辑是很有用的。 17.3.3 音频的数据格式 音频数据--也就是从TargetDataLine 输入或从SourceDataLine 输出的数据,必须符合音频格 式的标准。音频数据的格式选项 由AudioFormat 类封装,主要选项包括:编码方式(可以 是PCM (Pulse

文档评论(0)

xyl118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档