JMF 2.0 中文API文档资源与录音事件解析

5星 · 超过95%的资源 需积分: 10 9 下载量 125 浏览量 更新于2024-08-02 收藏 2.97MB DOC 举报
"jmf-2.0-中文API_DOC格式" Java Media Framework (JMF) 是一个开源的Java平台,用于处理多媒体数据,如音频和视频。这个资源提供了JMF 2.0版本的中文API文档,帮助开发者理解和使用JMF进行多媒体应用的开发。 JMF 提供了一套丰富的接口和类,使得开发者可以轻松地集成、播放、记录和操纵多媒体内容。以下是一些关键知识点: 1. **事件机制**: - `ActiveReceiveStreamEvent` 和 `ActiveSendStreamEvent`:这些事件类用于通知监听器RTP(实时传输协议)和RTCP(实时传输控制协议)数据包的状态变化。当数据包开始停止到达时,这些事件会被触发,帮助开发者跟踪接收和发送流的活动状态。 - `ApplicationEvent`:这类事件表示RTP和RTCP协议中的自定义数据包已被接收。 - `AudioDeviceUnavailableEvent`:当控制器无法获取到音频设备时,会抛出此类事件,提示开发者设备不可用。 2. **音频格式**: - `AudioFormat` 类:这是表示音频数据格式的类,包含了诸如编码、采样率、位深度和声道数等重要属性。开发者可以通过这个类来指定和处理不同类型的音频数据。 3. **格式化类**: - `Format` 类:所有媒体格式的基础类,它定义了媒体数据的基本属性。 - `AudioFormat` 继承自 `Format`,提供了针对音频数据的特定属性,如编码类型,可以通过构造函数如 `AudioFormat(String encoding)` 来创建。 4. **控制器事件**: - `ControllerEvent` 类:JMF中的控制器事件,用于通知媒体播放、暂停、停止等状态的变化。`AudioDeviceUnavailableEvent` 是其子类,表示音频设备的可用性状态。 5. **API 文档**: - 这些链接提供了一系列关于JMF的教程、论坛讨论和文章,可以帮助开发者深入了解JMF的工作原理,以及如何在实际项目中应用。 通过JMF的API文档,开发者可以学习如何创建和管理多媒体会话,处理音频和视频流,以及实现复杂的多媒体功能,如录制、播放和网络传输。此外,JMF还支持多种媒体格式和编解码器,使其成为一个强大且灵活的多媒体开发工具。
2009-03-25 上传
JAVA多媒体开发手册,Java多媒体框架(JMF)中包含了许多用于处理多媒体的API。它是一个相当复杂的系统,完全了解这个系统可能需要花上几周的时间,但是这篇文章将主要介绍JMF的几个核心接口和类,然后通过一个简单的例子向你展示如何利用该接口进行编程。 JMF目前的最新版本是2.1,Sun通过它向Java中引入处理多媒体的能力。下面是JMF所支持的功能的一个概述: ● 可以在Java Applet和应用程序中播放各种媒体文件,例如AU、AVI、MIDI、MPEG、QuickTime和WAV等文件。 ● 可以播放从互联网上下载的媒体流。 ● 可以利用麦克风和摄像机一类的设备截取音频和视频,并保存成多媒体文件。 ● 处理多媒体文件,转换文件格式。 ● 向互联网上传音频和视频数据流。 ● 在互联网上广播音频和视频数据。 JMF的结构 为了更好地说明JMF的结构,让我们用立体声音响做一个简单的比喻。当你CD机播放CD唱片的时候,CD唱片向系统提供音乐信号。这些数据是在录音棚中用麦克风和其他类似的设备记录下来的。CD播放机将音乐信号传送到系统的音箱上。在这个例子中,麦克风就是一个音频截取设备,CD唱片是数据源,而音箱是输出设备。 JMF的结构和立体声音响系统非常相似,在后面的文章中,你会遇到下面的这些术语: ● 数据源(Data source) ● 截取设备(Capture Device,包括视频和音频截取设备) ● 播放器(Player) ● 处理器(Processor) ● 数据格式(Format) ● 管理器(Manager) 下面让我们来看一看这些术语到底代表什么意思。 1.数据源 就像CD中保存了歌曲一样,数据源中包含了媒体数据流。在JMF中,DataSource对象就是数据源,它可以是一个多媒体文件,也可以是从互联网上下载的数据流。对于DataSource对象,一旦你确定了它的位置和类型,对象中就包含了多媒体的位置信息和能够播放该多媒体的软件信息。当创建了DataSource对象后,可以将它送入Player对象中,而Player对象不需要关心DataSource中的多媒体是如何获得的,以及格式是什么。 在某些情况下,你需要将多个数据源合并成一个数据源。例如当你在制作一段录像时,你需要将音频数据源和视频数据源合并在一起。JMF支持数据源合并,在后面的例子中我们将提到这一点。 2.截取设备 截取设备指的是可以截取到音频或视频数据的硬件,如麦克风、摄像机等。截取到的数据可以被送入Player对象中进行处理。 3.播放器 在JMF中对应播放器的接口是Player。Player对象将音频/视频数据流作为输入,然后将数据流输出到音箱或屏幕上,就像CD播放机读取CD唱片中的歌曲,然后将信号送到音箱上一样。Player对象有多种状态,JMF中定义了JMF的六种状态,在正常情况下Player对象需要经历每个状态,然后才能播放多媒体。下面是对这些状态的说明。 ● Unrealized:在这种状态下,Player对象已经被实例化,但是并不知道它需要播放的多媒体的任何信息。 ● Realizing:当调用realize()方法时,Player对象的状态从Unrealized转变为Realizing。在这种状态下,Player对象正在确定它需要占用哪些资源。 ● Realized:在这种状态下Player对象已经确定了它需要哪些资源,并且也知道需要播放的多媒体的类型。 ● Prefetching:当调用prefectch()方法时,Player对象的状态从Realized变为Prefetching。在该状态下的Player对象正在为播放多媒体做一些准备工作,其中包括加载多媒体数据,获得需要独占的资源等。这个过程被称为预取(Prefetch)。 ● Prefetched:当Player对象完成了预取操作后就到达了该状态。 ● Started:当调用start()方法后,Player对象就进入了该状态并播放多媒体。 4.处理器 处理器对应的接口是Processor,它一种播放器。在JMF API中,Processor接口继承了Player接口。 Processor对象除了支持支持Player对象支持的所有功能,还可以控制对于输入的多媒体数据流进行何种处理以及通过数据源向其他的Player对象或Processor对象输出数据。 除了在播放器中提到了六种状态外,Processor 对象还包括两种新的状态,这两种状态是在Unrealized状态之后,但是在Realizing状态之前。 ● Configuring:当调用configure()方法后,Processor对象进入该状态。在该状态下