知识大全 Java媒体架构基础:Framework Basics

Posted 媒体

篇首语:夫君子之行,静以修身,俭以养德,非淡泊无以明志,非宁静无以致远。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java媒体架构基础:Framework Basics相关的知识,希望对你有一定的参考价值。

Java媒体架构基础:Framework Basics  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   第一节 关于此指南    此指南包含的内容?    Java媒体架构(JMF)是一个令人激动的通用的API 它允许Java开发者用许多不同的方法处理媒体 本指南主要通过使用工作的例子提供一个JMF的一些主要的特征的概述 阅读完本指南后 你将会明白JMF体系结构中的主要播放功能 你同样能正确的使用JMF 使用现存的例子和可为更多特殊功能扩展的源代码     本指南包含着以下主题     · 下载和安装JMF  · 主要的JMF类以及它们在JMF体系结构中的应用  · 播放本地的媒体文件  · 为媒体的存取和操作制作以和图形用户界面(GUI)  · 通过网络传播媒体  · 通过网络接收媒体    几乎所有的媒体类型的操作和处理都可以通过JMF来实现 全面的讨论JMF所提供的所有特征已经超过了本指南的范围 我们将使用三个简单的媒体应用程序来学习此框架的构建模块 通过这个方法 本指南将为你未来学习和实施更多特殊的应用提供准备     我应该使用此指南吗?    本指南会带你学习使用JMF工作的基础 为完成这些 我们会创建三个的独立工作的例程序 每个例子都会建立前一个例子的基础上 显示JMF功能性的不同方面     在本指南中的例子假定你曾经使用过并且已经熟悉了Java程序语言 除了Java核心和JMF的类之外 我们会使用一些Java AWT和Swing类(用于创建GUI) 也会有一些Java网络类(用于在网络中传输媒体) 对GUI和网络类一些熟悉有助于你更快的明白观点和这里的例子 但并非是阅读本指南必须的     我们将学习的例程序如下    · 一个简单的音频播放器(JMF的HelloWorld应用) 这个字符界面的播放器通过在命令行中简单的输入媒体文件的名字就可以播放大多数的音频类型 此音频播放器的演示大体上显示了JMF的特有的类   · 一个图形界面的媒体播放器 我们将使用JMF内置的接口组件来建立图形界面 所以在此练习中必须有一些图形界面的编程经验 这个媒体阅览器演示使用了一些Java AWT和Swing类来为用户显示图形组件   · 一个媒体广播应用 此应用程序允许一个本地媒体文件通过网络传播 此程序能灵活的使媒体只传输到指定的网络节点 或者传输到一个子网络中的所有节点 此演示使用了一些Java的网络APIs来在网络中传输媒体     作为第三个练习的一部分 我们将修改图形界面的播放器 让其能接收并且播放媒体     跳至 页观看Resources 文章 指南 和其他参考书目的列表 这会帮助你学习到更到关于此指南包括的主题     安装需求    要运行此指南中的例程序 你需要如下的工具和组件     · Java 平台 标准版 编译和运行演示程序  · Java媒体框架 版本 a或者更高  · 一块已经安装并且配置号的适当的声卡  · 一台或者多台测试机器  · 演示的源代码文件在mediaplayer jar中    最后的一个演示应用显示了JMF在网络中的应用 如果需要 此演示能运行在一个独立的机器上 使用此机器即是传输方也是接收方 可是要观察到在网络中使用JMF的所有功能 你仍然需要至少两台联网的机器     在 页中的Resources可下载Java 平台 完整的源代码文件 以及其他一些完成本指南所需要的工具     下载安装文件    将JMF安装到你的计算机中的第一步是在JMF的主页中下载安装文件 它同样包括了JMF源代码和API文档的链接 页的Resources中有下载JMF的链接     目前 JMF有Windows Solaris Linux等版本 以及可运行在任何装有虚拟机的计算机上一个纯Java版本 为了增加性能 你需要下载一个与你操作系统所适应的版本 任何在一个操作系统JMF版本下书写和编译的代码都可以方便的移植到另外的操作系统上 例如 如果你下载了一个Solaris版本的JMF并且编译了一个类 这些类就可以在Linux上使用 不会有任何问题     作为选择 你可以选择下载纯Java版本 或者跨平台版本的JMF 这些版本没有使用操作系统特有的库文件 如果没有合适的JMF版本适合的操作系统 那么跨平台版本就是一个不错的选择     安装JMF    下载完JMF安装程序后 双击安装程序的图标     大部分安装程序都会有个选项 安装本地库到系统目录中 例如 Windows版本安装程序会有一个选项 Move DLLs to Windows/System directory 最好将此选项选中 因为它能确保这些操作系统的库文件能正确的安装    在安装的过程中 你还需要选择项目来更新系统的CLASSPATH和PATH变量 如果这些选项被关闭 那么在你编译和运行本指南的例程序的时候就需要在classpath中引入JMF的jar文件      第二节 一个简单的音频播放器    浏览    在本节中 我们将进行创建一个简单的音频播放器的第一个练习 本例将介绍Manager类和Player接口 中两个都是建立大多数基于JMF应用的重要部分     本例的功能目标是在字符界面下播放本地的音频文件 我们将学习此源代码 并了解每一行所做的任务 完成本节后 你将会有一个基于JMF的可播放包括MP WAV AU等多种音频文件的演示程序     在本练习后的源代码分类种可查询文件SimpleAudioPlayer java     引入必要的类    SimpleAudioPlayer类中包括了一些调用 在其前几行中需要引入所有必要的类     import dia *;  import java io File;  import java io IOException;  import URL;  import MalformedURLException;    The dia包是由JMF定义的多个包之一 dia是一个核心包 包括了定义Manager类和Player接口等 本节中 我们主要学习Manager类和Player接口 其余的dia类放在后面的章节中     除了引入dia声明外 以上的代码片断引入了一些创建媒体播放器的输入的声明     Player接口    在下面的代码片断中 创建一个公共类SimpleAudioPlayer并举例定义一个Player变量     public class SimpleAudioPlayer private Player audioPlayer = null;    术语Player听起来由点熟悉 因为它是建立在我们公用的音频或者视频播放器的基础上的 事实上 这个接口的例子就像是当作它们的真实的副本 Players揭示了一个实体上的媒体播放器(如立体音箱系统或者VCR)涉及到功能上的方法 例如 一个JMF媒体播放器可以开始和结束一个媒体流 在本节种 我们将使用Player的开始和结束功能     在一个文件上创建一个Player    使用JMF获得一个特定媒体文件的Player实例非常简单 Manager类在JMF中如同一个工厂制作许多的特殊接口类型 包括Player接口 因此 Manager类的责任就是创建Player实例 如下例     public SimpleAudioPlayer(URL url) throws IOException NoPlayerException CannotRealizeException audioPlayer = Manager createRealizedPlayer(url);public SimpleAudioPlayer(File file) throws IOException NoPlayerException CannotRealizeException this(file toURL());    如果你看完本节的代码 你可以注意到Manager类包含了创建一个Player实例的其他方法 我们会研究其中的一些 如在后面的章节中的DataSource或者MediaLocator的实例化     Player的状态    JMF定义了大量的一个Player实例可能存在的不同状态 如下     · Prefetched  · Prefetching  · Realized  · Realizing  · Started  · Unrealized    使用这些状态    因为使用媒体常常是资源非常密集的 由JMF对象揭示的许多方法都是不闭塞的 允许一系列事件监听的状态改变的异步通知 例如 一个Player在它可以启动之前 必须经过Prefetched和Realized状态 由于这些状态的改变都需要一些时间来完成 JMF媒体应用可以分配一个线程来初始化创建Player实例 然后再继续其他的操作 当Player准备就绪的时候 它会通知应用程序其状态已经改变     在一个如同我们的这样简单的程序中 多功能性的类型并不是很重要 处于这个原因 Manager类也提供了一些创建Realized player的有用方法 调用一个createRealizedPlayer()方法来阻塞调用线程 直到player达到Realized状态 为了调用一个无阻塞的创建player的方法 我们在Manager类中使用了一个createPlayer()方法 下面的一行代码中创建了一个我们需要在例程序中使用的    Realized player audioPlayer = Manager createRealizedPlayer(url);    启动和停止Player    设定一个Player实例的启动或是停止就如同调用Player的一个简单的认证方法 如下所示     public void play() audioPlayer start();public void stop() audioPlayer stop();audioPlayer close();    调用SimpleAudioPlayer类中的play()方法来实现调用Player实例的start()方法 调用此方法后 你能听到本地的喇叭的声音文件 同样的 stop()方法使player停止并且关闭掉Player对象     对于读取和或者播放本地媒体文件来说 关闭Player实例释放所有资源是一个有用的方法 因为这是一个简单的例子 关闭Player是终止一个会话可接受的方法 但是在实际的应用中 你需要小心的确认在除掉Player之前必须要关闭掉 一但你已经关闭掉player 在再次播放一个媒体之前你必须要创建一个新的Player实例(等待它的状 cha138/Article/program/Java/hx/201311/26532

相关参考

知识大全 现代Java Web开发架构分析

现代JavaWeb开发架构分析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在本文中我将集中讨

知识大全 Java的各种架构优缺点分析和展望

Java的各种架构优缺点分析和展望  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  首先是UI层很

知识大全 技术交流:QuickTime流媒体和Java(图)

技术交流:QuickTime流媒体和Java(图)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 JEECG V3.0版本新架构基础

JEECGV3.0版本新架构基础  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JEECGV版本

知识大全 中软linux流媒体服务解决方案

  流媒体在中国的宽带建设中被列为最主要的应用之一越来越多的网络服务运营商开始采用网络流媒体技术以增强其在网络服务上的优势流媒体技术将成为未来互联网应用的主流并将推动互联网整体架构的革新  应用流媒体

知识大全 在 Java 中如何进行 BASE64 编码和解码

在Java中如何进行BASE64编码和解码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  BAS

中资保险公司的组织架构

中资保险公司的组织架构多年来,中资保险公司大多采用的是职能式的组织结构形式。这种组织结构形式是一种高度集权的一元结构,称U型结构。这种组织结构形式是以工作性质和职能范围为基础来划分部门的,各部门执行所

据有关媒体报道,“五一”小长假尽管仅有三天,小长假的消费态势依然强劲,消费态势依然强劲的基础性原因是

据有关媒体报道,“五一”小长假尽管仅有三天,小长假的消费态势依然强劲,消费态势依然强劲的基础性原因是_____。A、许多商家纷纷利用节假日打折促销B、我国经济持续发展,居民可支配收入持续增加C、我国消

知识大全 利用JMF进行多媒体编程

利用JMF进行多媒体编程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Java媒体框架(JMF)使

知识大全 64位环境中的Java

64位环境中的Java  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!面向服务的架构(SOA)是一种