帮朋友调试一个JMF的程序,发现换个格式的文件就不行了,故想找下JMF支持哪些格式的文件。官网有详细的说明,故在此记录下。
不能播放的格式一般报如下的错误:
Cannot find a Player for: com.sun.media.protocol.file.DataSource
1:官方比较详细的 JMF 2.1.1 - Supported Formats
http://www.oracle.com/technetwork/java/javase/formats-138492.html
2:官方泛泛的说明
What media types does JMF 2.1.1 support?
http://www.oracle.com/technetwork/java/javase/index-135148.html#jmf2-support
JMF 2.1.1 supports a wide array of media types, including
-
protocols: FILE, HTTP, FTP, RTP
-
audio: AIFF, AU, AVI, GSM, MIDI, MP2, MP3*, QT, RMF, WAV
-
video: AVI, MPEG-1, QT, H.261, H.263
-
other: HotMedia
*MP3 is supported only on the Windows platform.
3:通过查看官方JAVA API文档并找源码实现的方式
首先找核心Manager的API文档
http://docs.oracle.com/cd/E17802_01/j2se/javase/technologies/desktop/media/jmf/2.1.1/apidocs/javax/media/Manager.html
然后结合错误并留意到如下一段说明:
Finding Players by Content Type
A Player is a MediaHandler. A MediaHandler is a an object that reads data from a DataSource. There are three types of supported MediaHandler: MediaProxy, Player and Processor.
MediaHandlers are identified by the content type that they support. A DataSource identifies the content type of the data it produces with the getContentType method. Manager uses the content type name to find instances of MediaHandler.
To find a MediaHandler using a content type name, Manager constructs a list of class names from the content package-prefix list and the content type name. For each class name in the constructed list a new MediaHandler is instantiated, and the DataSource is attached to the MediaHandler using MediaHandler.setSource.
If the MediaHandler is a Player and the setSource was successful the process is finished and the Player is returned. If the setSource failed, another name in the list is tried.
If the MediaHandler is a MediaProxy then a new DataSource is obtained from the MediaProxy, a new list is created for the content type the DataSource supports and the whole thing is tried again.
If a valid Player is not found then the whole procedure is repeated with "unknown" substituted for the content-type name. The "unknown" content type is supported by generic Players that are capable of handling a large variety of media types, often in a platform dependent way.
The detailed creation algorithm is specified in the methods below.
找到重点在于 MediaHandlers 这个类的实现类,ok开始在eclipse中看其有哪些实现类,实现类中主要看Parser即可。
ok,代码实现和官方文档基本吻合。
- 大小: 101 KB
分享到:
相关推荐
Java Media Framework (JMF) 是一个用于开发多媒体应用程序的Java平台框架。它是Java开发者用来处理音频、视频和其他基于时间的媒体内容的工具。JMF允许在Java Applet和应用程序中集成多媒体功能,使得开发者能够...
标题 "jmf" 指的是 Java Media Framework (JMF),这是一个开源的Java平台,用于处理多媒体数据,如音频和视频。JMF 提供了一种框架来播放、捕获、处理和传输媒体内容。在描述中提到的博客链接可能是关于 JMF 的一个...
《JMF667主控SSD开卡工具详解》 在存储技术领域,固态硬盘(Solid State Drive,简称SSD)凭借其高速度、低延迟的优势,逐渐成为主流的存储设备。其中,主控芯片是SSD的核心组件,它负责管理数据的读写、错误校验...
Java Media Framework (JMF) 是一个开源的Java平台,它为开发人员提供了处理音频、视频和多媒体应用的能力。JMF 提供了丰富的接口和类,使得开发者可以方便地集成和播放各种多媒体内容。在本资源中,我们有两个关键...
Java Media Framework (JMF) 是一个开源的Java平台,用于处理多媒体数据,如音频、视频和流媒体。它为开发者提供了在Java应用程序中集成多媒体功能的能力。本开发指导将深入探讨JMF的各个方面,帮助你理解和掌握其...
Java Media Framework(JMF)是Java平台上用于处理多媒体数据的一个框架,它允许开发人员创建、播放和捕获音频和视频内容。"JMF使用问题总结"这个主题主要聚焦于在使用JMF播放MP3文件时可能遇到的问题及其解决方法。...
标题中的“JMF608MP_2.03.059.rar”指的是一个名为“JMF608MP”的设备或软件的版本号为2.03.059的更新压缩包,文件格式为RAR,通常用于存储多个相关文件。RAR是一种流行的压缩格式,它能更有效地压缩数据,比ZIP等...
Java Media Framework (JMF) 是一个开源的Java平台框架,用于处理、播放和记录多媒体内容。JMF2.1是该框架的一个版本,提供对音频、视频和流媒体的支持。这个压缩包“JMF2.1.zip”包含了JMF2.1的安装程序和完整的jar...
程序描述:用JMF2.0做的调用摄像头 进行视屏录制,是 医学上“内镜”影像学录像和截图的简单DEMO。 完整的MyEclipse项目,含有源码和所需的JAR包,编译完成有直接运行com.jake.camera.LocalVideoTest就可出现录制...
### JMF605 固态硬盘 DIY 方案解析 #### 一、JMF605 芯片概述 JMF605 是一款专为固态硬盘(SSD)设计的主控芯片,适用于半瘦型 SSD 模块。该芯片支持多种 NAND Flash 存储类型,并具备强大的数据管理功能,如磨损...
Java Media Framework(JMF)是Java平台上用于处理多媒体数据的一个框架。这个下载包包含了与`java.media`相关的组件,主要用于开发能够播放、捕获、处理和流化音频、视频的应用程序。下面将详细介绍JMF的核心功能、...
Java媒体框架(JMF)是一个为Java应用程序提供媒体处理能力的标准扩展框架。它允许程序捕获、处理、播放和传输各种媒体类型,包括音频和视频。JMF支持不同媒体间的时钟同步,使得在播放不同类型的媒体时,它们能够...
"JMF.zip_JMF W_Java 播放器_hookqq_jmf_jmf-2_0-spec"这个压缩包包含了一个基于Java开发的媒体播放器示例,适用于初学者学习和理解JMF的用法。 JMF的核心是其组件模型,它支持多种媒体格式,包括音频、视频和流...
Java Media Framework(JMF)是Java平台上的一个多媒体框架,用于处理音频、视频和其他时间同步的数据流。JMF_demo.rar 文件包含了一系列与JMF相关的资源,包括示例代码、安装程序、API文档以及使用指南,方便开发者...
Java媒体框架(JMF,Java Media Framework)是Sun Microsystems公司开发的一个开源框架,主要用于处理音频、视频和流媒体内容。这个框架为Java开发者提供了一种在应用程序中集成多媒体功能的方法,使得开发者能够...
Java Media Framework (JMF) 是一个开源的Java平台框架,用于处理音频、视频和多媒體内容。这个"jmf jar包下载"标题指的是提供JMF的库文件,它是一个.jar文件,供Java开发者在编程中使用,特别是涉及到多媒体处理的...
智微科技发布了JMF608和JMF609固态硬盘主控制器的NAND Flash颗粒支持列表。这一列表详细列出了这两个控制器所支持的NAND Flash芯片型号,并且提供了一个文档编号608-00002以及修订版本0.6,发布日期为2014年5月9日。...
【标题】"jmf605量产工具"指的是专门针对JMF605主控芯片进行批量生产的软件工具。在闪存存储设备如USB闪存盘、SD卡等的制造过程中,量产工具起到了至关重要的作用,它能进行格式化、分区、写入固件、性能测试等一...
Java Media Framework (JMF) 是一个用于开发多媒体应用程序的开源框架,由Sun Microsystems提供。它允许程序员处理音频、视频和其他时间同步的媒体数据。在Java应用程序中集成多媒体功能时,JMF扮演着至关重要的角色...
Java Media Framework (JMF) 是一个开源的Java平台框架,用于处理、播放和捕获多媒体内容。这个压缩包中的“JMF源代码”显然包含了JMF的源文件,对于开发者来说是一个宝贵的资源,特别是对那些想要深入理解JMF工作...