设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> Java >> Java多媒体框架设计自动播放机实例详解
精品推荐
Java点击TOP10
·我写的Java学生成绩管理系统源代码
·java笔试题
·异常java.sql.SQLException: Io exception:The Network Adapter could not establish connection
·MyEclipse 下开发JSF教程
·java网络五子棋的源代码
·servlet和JSP过滤器Filter
·用Eclipse Visual Editor 开发SWT GUI
·JSF+Spring+Hibernate的实例讲解(原创翻译)
·一个相对不错的地区代码级联实现
·《Thinking in Java》读书笔记
编程开发点击TOP10
·数字小键盘指法练习
·ASP.NET 程序中常用的三十三种代码
·用C语言编通讯录程序(初学者级别的)
·我写的Java学生成绩管理系统源代码
·CHK文件恢复工具
·java笔试题
·单片机模拟I2C总线及24C02(I2C EEPROM)读写实例(源代码)
·Modem 常用AT指令集
·异常java.sql.SQLException: Io exception:The Network Adapter could not establish connection
·C++经典电子书下载
精选专题

Java多媒体框架设计自动播放机实例详解

作者: 来源:http://www.xgdown.com/ 时间:2007-7-27 13:03:12

Java多媒体框架设计自动播放机实例详解(1)

如果把Java媒体框架(http://java.sun.com/jmf)看作客户端安装的媒体播放机的话,那么这种框架并不是非常激动人心。它只支持少量媒体类型,并且事实上这些媒体类型都被象Windows媒体播放机以及QuickTime等其它的应用程序支持。

但是从内容供应商的观点来看,下面这个事实更加有意义:JMF在所有的Java类型中都可用,这使在客户端上不必要有任何特定的媒体技术就可以部署媒体--所需要的只是J2SE Java运行时间。

更重要的是它能利用.jar文件格式的一些性能把解码器和媒体组成到一个文件中,创建一个"自我播放电影",使用了象WinZip和StuffIt这样的压缩应用程序大致相同的方式来创建自我展开文档。

我们把此分为三个阶段:

1.使JMF能够播放.jar文件中的媒体。

2.只使用需要播放本地媒体所需的JMF的一部分创建一个轻量级.jar文件。

3.将代码和媒体放入.jar文件,并且创建一个合适的manifest文档以使它可以双击。

基本的JMF播放的关键是获得Player,能解码和渲染你的媒体。一般来说,这通过使用Manager获得合适的DataSource来完成,在一个播放实例中提供了媒体流和流元数据,例如媒体格式。Manager然后找到一个Player来处理DataSource。在两种情况下,Manager结合一个带有程序包前缀列表(象javax.media、com.ibm.media等等)的反射方案来试图寻找合适的类,例如如果一个计划的播放程序不能接受提供给它的DataSource,那么它就会抛出异常。

Manager没有太多事要做,只是察看一下URL中的协议和文件扩展名,所以虽然它可以很容易的知道如何处理file:///Users/cadamson/mymp3stash/some.mp3,但是它不知道如何处理象jar:file:/Users/cadamson/dev/jmftests/spmovie-old/src/gatsbymovie.jar!/movie/themovie.mov这样的URL。

为了缓和这种情况,我们可以写一个DataSource,说得更准确一点就是一个PullDataSource,担负为Manager描述细节的责任。JarEntryDataSource中没有一个方法特别难;我们提供的PullSourceStream还需要实现几个超级接口。

它有些不够完美,但是这个类依靠文件扩展名来返回"内容类型"。这多多少少有点象一个MIME类型,除了使用句号代替斜线符号来格式化以外,所以它可被用于程序包名称(例如video/mpeg MIME类型变成video.mpeg,所以Manager可以找到com.sun.media.codec.video.mpeg包)。下面是我们的简单的实现:

public String getContentType() {
  
  try {
  
  URL url = getLocator().getURL();
  
  String urlFile = url.getFile();
  
  if (urlFile.endsWith(".mov"))
  
  return "video.quicktime";
  
  else if (urlFile.endsWith(".mpg"))
  
  return "video.mpeg";
  
  else if (urlFile.endsWith(".avi"))
  
  // Manager needs '_' insted of '-'
                  
共3页 9 7 [1] [2] [38 :>

Java多媒体框架设计自动播放机实例详解 相关文章:
Java多媒体框架设计自动播放机实例详解 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com