转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> JAVA开发 >> 正文
用Java多媒体框架实现自播放         ★★★★

用Java多媒体框架实现自播放

作者:闵涛 文章来源:闵涛的学习笔记 点击数:668 更新时间:2009/4/22 23:27:59
 作为客户端安装的媒体播放器,Java Media Framework并没有给人很深的印象。它仅仅支持一部分媒体类型,而这些类型只是其他播放系统比如说Windows Media Player和QuickTime支持类型的子集。

  但是从内容供应商的观点来看,故事就变的有趣多了:JMF在所有的java模式下都可以适用,这样我们在部署媒体的时候客户端不需要任何媒体播放技术――只需要一个J2SE的运行环境就可以了。举例来说,工程巨人Robert X. Cringely最近宣布一项计划: 他们将提供一个被称为"NerdTV"的纯java的MPEG-4 系统,这个系统不需要任何客户端的预安装。

  更进一步来说,我们还可以利用.jar格式来把解码器和媒体文件打包成一个文件,以此,从效果上来说创建了一个"自播放电影",与压缩系统WinZip和StuffIt可以创建自扩展归档文件的方式相似。

  实现的策略分三步走:

  1.使JMF可以播放在.jar文件里的媒体文件。

  2.创建一个精简型的.jar 文件,只包括JMF里必须播放本地媒体文件的部分。

  3.把代码和媒体文件都放进.jar里,创建一个合适的manifest 文件来支持双击。

  JMF基本放像功能的关键在于得到一个可以解码和播放媒体文件的播放器。一般来说,这个动作通过使用管理器来得到一个合适的数据源,这个数据源在放像模式下同时提供媒体流和关于媒体流的元数据,比如说媒体文件的格式。管理器接着找到一个播放器来处理这个数据源。在两种情形下,管理器把一系列的包前缀(javax.media,com.ibm.media等等)绑定在反射机制上来寻找合适的类,在某种情形下抛出错误,比如说当找到的播放器不能接受提供的数据源。

  接下来管理器没有更多的办法,通常只是查看URL里的协议和文件扩展名,所以它可以很容易的知道如何处理file&:///Users/cadamson/mymp3stash/some.mp3 ,却不知道如何处理jar:file&:/Users/cadamson/dev/jmftests/spmovie-old/src/gatsbymovie.jar!/movie/themovie.mov。

  为了让事情变得更简单,我们来写一个数据源,或者更确切的说,写一个牵引式数据源。它的职责是为管理器描速数据源本身。JarEntryDataSource里的方法都很简单;但是有很多,因为我们提供的PullSourceStream需要使用很多接口的实现。

  这种做法看起来有些不妥――类是通过文件的扩展名来返回"内容类型"的。它类似于MIME类型,只是它用句点而不是用斜杠来构建(MIME类型video/mpeg 转换为video.mpeg,这样管理器可以找到包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 '-'
return "video.x_msvideo";
else
return "unknown";
} catch (MalformedURLException murle) {
return "unknown";
}
}


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台