JMF:(JavaTM Media Framework)是处理多媒体的程序接口。

JMF框架主要有三种模型,分别是时间模型,事件模型以及数据模型。时间模型定义了JMF的处理媒体流的时间数据的结构。事件模型定义了JMF框架的事件类型以及各个事件类型之间的关系。数据类型定义了JMF处理的媒体流数据的类型。

时间模型

JMF中时间的最小单位是纳秒。所有持JMF的时间模型的类都实现了Clock接口。Clock接口定义了基本的计时和同步操作,以控制媒体数据的呈现。

Clock接口使用TimeBase来跟踪媒体流的时间。

Clock接口中的media time表示媒体流中的当前位置。媒体流的初始media time是0,媒体流的末尾是流的最大media time.Duration表示的媒体流的时间长度。TimeBaseStartTime表示播放媒体流的Time-base time.MediaStartTime表示播放媒体流的起始时间。Rate表示Clock相对TimeBase的速度。比如Rate为1代表正常的播放速度,如果为2代表是正常速度的2倍。

换算关系为:MediaTime=MediaStartTime+Rate*(Time-Basetime - TimeBaseStartTime)

事件模型

JMF使用结构化的事件报告机制来跟踪基于JMF开发的程序的当前状态。基于JMF的程序可以响应媒体驱动的事件,如out-of data和resource unavailable事件。所有媒体事件都继承自MediaEvent类。可以通过调用addListener方法将该接口注册到发布事件的对象上,即可在事件发生后获得事件通知。

数据模型

JMF媒体播放器通常用DataSources类来处理媒体数据的传输。DataSources类封装了媒体的位置信息、协议信息以及传送媒体的软件。DataSource类可以通过JMF的MediaLocator类或者一个URL(Universal Resource Locator)类来标识。MediaLocator类似于URL类并且可以通过URL类来构造,同时MediaLocator可以在相应的协议处理器没有安装的情况下被构造,而URL不行。

一个DataSource对象管理一系列的SourceStream对象。标准的数据源及字节序列为单位进行传输,缓冲数据源使用Buffer对象作为阐述对象。

Processor与Player

在JMF API中,Processor 接口继承了Player接口。Processor对象除了支持Player对象支持的所有功能之外,还可以控制对于输入的�

java怎么没有jmf包_java JMF相关推荐

  1. java生成cmd jar包_Java程序运行机制及cmd编译运行探究(二) cmd编译运行Java程序并打成jar包...

    目标:写一个RandomUtils.java工具类,返回一个随机数,并把这个类的字节码文件打成jar包 在Java运行机制及cmd编译运行探究(一)准备工作一文中,我总结了一部分要用到的cmd及编译运 ...

  2. java开发常用jar包_java开发常用jar包

    mail.jar与activation.jar 里面包含了activation.jar和mail.jar两个包.通过里面的类的调用便可以达到发送电子邮件的目的 commons-beanutils.ja ...

  3. java jmf变成_java JMF 多媒体

    JMF:(JavaTM Media Framework)是处理多媒体的程序接口. JMF框架主要有三种模型,分别是时间模型,事件模型以及数据模型.时间模型定义了JMF的处理媒体流的时间数据的结构.事件 ...

  4. java动态打jar包_java动态加载jar包

    目录结构如下. ├── main │   ├── java │   │   └── lu │   │   └── tool │   │   └── jar │   │   ├── InterfaceR ...

  5. java转json jar包_java转换json需导入的jar包说明

    commons-beanutils-1.8.0.jar不加这个包 java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBe ...

  6. java开发常用jar包_Java开发中常用jar包整理及使用

    本文整理了我自己在Java开发中常用的jar包以及常用的API记录. 一.common-lang3 简介:一个现在最为常用的jar包,封装了许多常用的工具包 依赖: org.apache.common ...

  7. java解压zip包_Java中文件的压缩与解压,每天进步一点点系列

    使用java.util.zip包,实现文件的压缩与解压,并提供了下载方法 注意 无论是调用createNewFile()创建文件,还是在创建输出流时由输出流负责创建文件,都必须保证父路径已经存在,否则 ...

  8. java 人脸识别jar包_java版天网人脸识别系统,获取视频流人脸识识别推送服务器展示...

    java版天网人脸识别系统,获取视频流 进行人脸识别后推送到流媒体服务器实时展示 获取视频流 进行人脸识别后推送到red5服务器(人脸识别技术由虹软®提供) 整个系统共有两个项目组成 red5_hls ...

  9. java添加主类包_java – Maven bundle插件 – 如何添加主类

    我有一个Maven项目mjbean只有一个依赖项:TestA.这是mjbean的pom.xml: 主要课程非常简单: package com.mbean; import com.testa.Testc ...

最新文章

  1. 独家干货 | 吴恩达深度学习专项课程精炼笔记!
  2. go goroutine主死从随
  3. 《视频直播技术详解》系列之六:延迟优化
  4. P5546-[POI2000]公共串【SAM】
  5. Oracle 数据库的替代变量问题(即 set define off/on 的用法)
  6. 转:upload.parseRequest为空
  7. Google Adwords 关键字策略 – SEO数据搭配
  8. Css中部分知识点整理【笔记整理】
  9. android单选按钮_Android单选按钮示例
  10. EventBus (一) 使用详解——初步使用EventBus
  11. KITTI数据集简介与使用
  12. html:运用表单表格制作简易个人简历
  13. IBM人工智能系统赢得人机辩论比赛
  14. 华夏联盟社会工程技术学习
  15. 计算机网络线接法,电脑网线水晶头接法图解
  16. 2021年南京大学软件工程专硕考研初试410分(数学满分)总成绩第二上岸经验贴
  17. 基于JAVA校内图书馆智能管理系统计算机毕业设计源码+数据库+lw文档+系统+部署
  18. 色彩心理学:为什么快餐店不适合等人?
  19. NIO核心设计与原理
  20. C语言学习2:Hello World!详解

热门文章

  1. 均匀化退火时间_热处理加工均匀化退火要点
  2. java校园实习兼职
  3. 狂野飙车显示无法连接服务器,狂野飙车8:极速凌云无法连接服务器是什么原因...
  4. 该怎么说,爱到最后成了路人甲,陌路天涯
  5. java rgb转yuv_RGB 转化YUV | 学步园
  6. 【复习必备】高中数学必修四公式汇总, 精华版赶快收藏
  7. Python数据处理基础操作
  8. 【平常心无焦虑探讨】未来谁将被淘汰—在日常网络安全工作中使用GPT的感受
  9. 【Unity】基础游戏单位GameObject中常用的属性和API
  10. QQ飞车手游S25赛季什么时候更新?S25赛季段位继承表图文一览