第十一章 多媒体服务
1 第十一章 多媒体服务
本章目标 完成本章内容之后我们将能够: 必 了解多媒体框架(MMF) 冬 使用MMF音频API 冬 了解MMF视频概念,框架和相关API
2 ❖ 完成本章内容之后我们将能够: ❖ 了解多媒体框架(MMF) ❖ 使用MMF音频API ❖ 了解MMF视频概念,框架和相关API 本 章 目 标
概述 本章先讲述多媒体架构,包括它的发展简史。然后, 描述多媒体子系统的各个单独部分
3 概述 本章先讲述多媒体架构,包括它的发展简史。然后, 描述多媒体子系统的各个单独部分
多媒体组件架构 在讨论多媒体的当前状态之前,先回顾Symbian OS 中多媒体的发展历史。 从历史上看,多媒体子系统包括用于处理下面多媒 体领域的单独API: 音频一一 回放、录音和操作。 。 静态图像一一 解码、编码和操作。 直到Symbian0S7.0,这一切都没有发生变化,不过, 对应的子系统却发生了相当大的变化。Symbian0S7.0中 的多媒体API主要是以前版本中出现的API的超集,在某 些地方,同时存在新方法和遗留的方法
4 多媒体组件架构 在讨论多媒体的当前状态之前,先回顾Symbian OS 中多媒体的发展历史。 从历史上看,多媒体子系统包括用于处理下面多媒 体领域的单独API: • 音频——回放、录音和操作。 • 静态图像——解码、编码和操作。 直到SymbianOS 7.0,这一切都没有发生变化,不过, 对应的子系统却发生了相当大的变化。SymbianOS 7.0中 的多媒体API主要是以前版本中出现的API的超集,在某 些地方,同时存在新方法和遗留的方法
多媒体组件架构 为了解释在Symbian0S7.0中对多媒体子系统进行许 多基本改进的原因,有必要回顾这一操作系统以前版本 中的子系统以及它们所面临的问题。这一节简要概述6.1 和7.0中的Media服务器及进行更改的原因
5 多媒体组件架构 为了解释在SymbianOS 7.0中对多媒体子系统进行许 多基本改进的原因,有必要回顾这—操作系统以前版本 中的子系统以及它们所面临的问题。这一节简要概述6.1 和7.0中的Media服务器及进行更改的原因
媒体服务器 在Symbian0S6.1和7.0中,所有多媒体处理都通过 媒体服务器(mediaserver)进行。这是一个标准Symbian 0S服务器,是提供全部多媒体功能的单个进程。该服务 器支持音频回放和录音,还支持对静止图像的编码/解码 和处理。操作系统支持大量音频和图像格式,可以通过 编写插件扩展这些格式。 为了使用该服务器,用户可以显示实例化一个与服 务器的连接,或允许客户端API自动提供一个连接。每个 客户端用户将提供一个服务器的观察器类,使该服务器 能够与用户应用程序或库通信传递消息
6 媒体服务器 在Symbian OS 6.1和7.0中,所有多媒体处理都通过 媒体服务器(mediaserver)进行。这是一个标准Symbian OS服务器,是提供全部多媒体功能的单个进程。该服务 器支持音频回放和录音,还支持对静止图像的编码/解码 和处理。操作系统支持大量音频和图像格式,可以通过 编写插件扩展这些格式。 为了使用该服务器,用户可以显示实例化一个与服 务器的连接,或允许客户端API自动提供一个连接。每个 客户端用户将提供一个服务器的观察器类,使该服务器 能够与用户应用程序或库通信传递消息
媒体服务器 服务器保持一个客户端对象列表,并且并发循环处 理多媒体请求。这意味着,许多不同的客户端用户可以 同时使用该服务器,例如,让一个用户应用程序播放音 频,同时解码用于显示的图像。尽管这听起来很理想, 但产生这种行为的实际问题很复杂并且困难重重。 例如,如果用户实际上希望同时使用服务器的两部 分功能,让一个进程控制这两部分造成的潜伏期可能使 系统实际上不可用。例如,一项处理器密集型任务(如解 码图像)将阻止使用任何实时多媒体任务(如音频流式处 理),音频流在设备驱动器中将非常迅速地下溢。当使用 编写得很差的第三方插件(常常转换自非Symbian代码, 并包含消耗大量处理器时间的冗长程序)时,情况更糟。 插件框架本身就使得为之编程非常复杂,这并不会改善 上述状况
7 媒体服务器 服务器保持一个客户端对象列表,并且并发循环处 理多媒体请求。这意味着,许多不同的客户端用户可以 同时使用该服务器,例如,让一个用户应用程序播放音 频,同时解码用于显示的图像。尽管这听起来很理想, 但产生这种行为的实际问题很复杂并且困难重重。 例如,如果用户实际上希望同时使用服务器的两部 分功能,让一个进程控制这两部分造成的潜伏期可能使 系统实际上不可用。例如,一项处理器密集型任务(如解 码图像)将阻止使用任何实时多媒体任务(如音频流式处 理),音频流在设备驱动器中将非常迅速地下溢。当使用 编写得很差的第三方插件(常常转换自非Symbian代码, 并包含消耗大量处理器时间的冗长程序)时,情况更糟。 插件框架本身就使得为之编程非常复杂,这并不会改善 上述状况
媒体服务器 上述各种问题,加上连接到服务器在最坏的情况下 可能花费几秒钟的事实,意味着必须对此作出改进
8 媒体服务器 上述各种问题,加上连接到服务器在最坏的情况下 可能花费几秒钟的事实,意味着必须对此作出改进
新时代的开始 Symbian开始编写全新的多媒体子系统,它将成功允 许该子系统的不同功能同时使用,也提供手机制造商和 第三方可以轻松扩展的轻量级框架。新系统不是只基于 个服务器,而是拆分不同的多媒体部分,以使用单独 的服务器和进程。 新的子系统使用多个并发多媒体线程,没有在媒体 服务器中看到的任何副作用。它使用许多与媒体服务器 相同的客户端API,但是使用了一个新的插件解决方案, 称作ECom。这使得在电话制造过程中或出产以后,手机 生产商和第三方能够编写和集成插件
9 新时代的开始 Symbian开始编写全新的多媒体子系统,它将成功允 许该子系统的不同功能同时使用,也提供手机制造商和 第三方可以轻松扩展的轻量级框架。新系统不是只基于 一个服务器,而是拆分不同的多媒体部分,以使用单独 的服务器和进程。 新的子系统使用多个并发多媒体线程,没有在媒体 服务器中看到的任何副作用。它使用许多与媒体服务器 相同的客户端API,但是使用了一个新的插件解决方案, 称作ECom。这使得在电话制造过程中或出产以后,手机 生产商和第三方能够编写和集成插件
多媒体框架(MF) 由于这个新的子系统如此成功, 以至于很快被集 成到Symbian OS7.0中,Symbian0S7.0只是刚刚开始 它的开发生命周期。随着Symbian 0S7.O的发展进步, 这个子系统演变成现在所谓的多媒体框架(MMP, MultimediaFramework). MMF提供了在Symbian OS7.0中能够处理多媒体的框 架。这个框架本身十分轻量化,并且提供了一个基于 ECom的多线程系统,它保留了从6.1到7.0中原始API的子 集,还进行了很多改进。 MMF的基本结构包括一个客户端API层、一个控制器 框架、控制器插件和低层次子系统。图7.1显示了这个架 构的概观
10 多媒体框架(MMF) 由于这个新的子系统如此成功, 以至于很快被集 成到Symbian OS 7.0中,Symbian OS 7.0只是刚刚开始 它的开发生命周期。随着Symbian OS 7.0的发展进步, 这个子系统演变成现在所谓的多媒体框架(MMF, MultimediaFramework)。 MMF提供了在Symbian OS 7.0中能够处理多媒体的框 架。这个框架本身十分轻量化,并且提供了一个基于 ECom的多线程系统,它保留了从6.1到7.0中原始API的子 集,还进行了很多改进。 MMF的基本结构包括一个客户端API层、一个控制器 框架、控制器插件和低层次子系统。图7.1显示了这个架 构的概观