利用JMF进行多媒体编程
日期:2008年2月5日 作者: 查看:[大字体 中字体 小字体]-
Java媒体框架(JMF)使你能够编写出功能强大的多媒体程序,却不用关心底层复杂的实现细节。JMF API的使用相对比较简单,但是能够满足几乎所有多媒体编程的需求。在这篇文章中,我将向你介绍如何用很少的代码就编写出多媒体程序。
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对象已经确定了它需要哪些资源,并且也知道需要播放的多媒体的类型。 - [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页
-
- 利用JMF进行多媒体编程 相关文章:
- ·冰点还原精灵 图文教程
- ·C语言教程第六章:指针
- ·三国群侠传 流程攻略 - 游戏攻略
- ·无线攻防:破解WEP密钥过程全解
- ·C语言教程第五章:函数
- ·Excel XP函数实用教程精华集
- ·“黑客”教你如何远程控制计算机
- ·COOL EDIT软件录制歌曲基本流程介绍
- ·VB中使用DirectX库的简明教程
- ·远程破OICQ密码给工具QQExplorer ver 1.25介绍
- 利用JMF进行多媒体编程 相关软件
- ·《仙剑奇侠传2》全过程存档
- ·C/C++程序设计学习与实验系统 V2008.2
- ·极品五笔教程 V2007
- ·灰鸽子远程控制 V2.0
- ·反恐精英CS1.6 Steam 安装程序
- ·Photoshop视频实例教程系列电子书 V1.0
- ·《猎杀潜航3》完美全图文教程
- ·全程英语单词及语法 V1.0
- ·软件破解入门教程和解密常用手册
- ·编程傻瓜--逗死汇编 V1.4a
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:关于23种设计模式的有趣见解
下一篇:Java 3D的动画展示图(Part1-使用JMF)
精品推荐
热点TOP10
- ·Web2.0时代的核心应用:Ajax简介
- ·Hibernate一对多单向关系
- ·Struts+Spring+Hibernate实现上传下载
- ·J2EE核心:iBatis DAO入门与进阶二
- ·O/R MAPPING(Hibernate)方法小结
- ·Tapestry入门
- ·J2ME游戏开发实例讲解
- ·开源技术——体验Struts
- ·用Java实现音频播放
- ·利用 Java Web Start发布你用java程序
- ·FreeMarker概述
- ·用java实现print screen,读取位图文件,将位图文件转化位jpeg格式并保存成文件输出!
- ·使用poi操作Excel的几点注意事项
- ·JBOSS的集群策略分析
- ·利用JMF进行多媒体编程
- ·Java基础:三步学会Java Socket编程
- ·Eclipse插件之Spring IDE
- ·根据IP找地址的java实现
- ·javaCC学习笔记
- ·在桌面应用中使用JAVA DB
特别推荐
- ·你能过关吗?J2EE面试题集锦(附答案)
- ·面向过程与面向对象的区别
- ·Tapestry入门
- ·候捷谈Java反射机制
- ·标准的web.xml
- ·Java异常处理的特殊情况
- ·SOAP协议初级指南
- ·Why Java can be used for games?
- ·用Java Socket制作广播信使程序
- ·J2ME游戏开发实例讲解
- ·用java实现print screen,读取位图文件,将位图文件转化位jpeg格式并保存成文件输出!
- ·[SNAP]实例讲解移动QQ在线平台
- ·0. Preface: Core Technologies
- ·一个简单实用的数据库操作框架
- ·开源技术——体验Struts
- ·Java资料:Swing中的事件处理详细资料
- ·Tomcat性能调整
- ·Java基础:三步学会Java Socket编程
- ·一种通用的输入校验方法和气球泡提示的实现(键盘用户界面模块)
- ·JBoss 4.0 简化了中间件的开发
