基于代理模式的多媒体显示方法、装置及设备与流程

文档序号:18868977发布日期:2019-10-14 19:03阅读:249来源:国知局
基于代理模式的多媒体显示方法、装置及设备与流程

本发明涉及显示领域,特别是涉及一种基于代理模式的多媒体显示方法、装置及可读存储介质。



背景技术:

操作系统中一般包括显示实现组件(包括显示驱动或显示系统),为上层的显示应用程序访问底层的视频设备/驱动提供了统一的接口。显示应用程序可以调用显示实现组件来实现视频、图片、字幕等内容的显示。对于需要解码的文件,应用程序可以将文件设定给中间件(例如播放框架、图片显示框架等),由中间件解码后再调用显示实现组件来显示。

现有技术中,显示应用层(显示应用程序和/或中间件)直接调用显示实现组件。例如在linux系统中,驱动程序v4l2为linux下视频设备程序提供了一套接口规范。芯片制造商可以按照接口定义实现v4l2驱动和显示设备的对接。显示应用层可以通过调用v4l2驱动的video相关接口来完成视频、字幕、图片等的显示。显示应用层中的显示控制部分需要直接与显示实现组件对接。如果需要更换显示实现组件,或者显示实现组件的接口/参数配置发生变化(例如移植到不同的芯片上),都需要对显示应用层进行修改,复杂度高,灵活性差。



技术实现要素:

本发明主要解决的技术问题是提供一种基于代理模式的多媒体显示方法、装置及可读存储介质,能够解决现有技术中显示应用层直接调用显示实现组件带来的复杂度高,灵活性差的问题。

为了解决上述技术问题,本发明提供了一种基于代理模式的多媒体显示方法,该多媒体显示方法应用于内置有嵌入式系统的芯片,嵌入式系统包括显示应用层、显示代理主体、显示委托主体和显示实现组件,显示代理主体是显示委托主体的代理,显示代理主体和显示委托主体独立于显示应用层;该多媒体显示方法包括:显示代理主体接收来自于显示应用层的待显示多媒体数据,并向显示委托主体发送待显示多媒体数据;显示委托主体向显示实现组件或显示应用层发送待显示多媒体数据,以在显示屏上显示。

为了解决上述技术问题,本发明提供了一种基于代理模式的多媒体显示装置,该多媒体显示装置属于内置有嵌入式系统的芯片,嵌入式系统包括显示应用层、显示代理主体、显示委托主体和显示实现组件,该多媒体装置包括:显示代理主体,用于接收来自于显示应用层的待显示多媒体数据,并向显示委托主体发送待显示多媒体数据;显示委托主体,用于向显示实现组件或显示应用层发送待显示多媒体数据,以在显示屏上显示;其中显示代理主体是显示委托主体的代理,显示代理主体和显示委托主体独立于显示应用层。

为了解决上述技术问题,本发明提供了一种基于代理模式的多媒体显示设备,该设备包括处理器和通信电路,处理器连接存储器,存储器存储有指令,处理器用于执行指令以实现前述的方法。

为了解决上述技术问题,本发明提供了一种可读存储介质,存储有指令,指令被执行时实现前述的方法。

本发明的有益效果是:显示应用层通过显示代理主体接收来自于显示应用层的待显示多媒体数据并发给显示委托主体;显示委托主体向显示实现组件或显示应用层发送待显示多媒体数据,以在显示屏上显示。与显示实现组件或显示应用层对接以实现显示功能的是显示委托主体,显示代理主体是显示委托主体的代理,显示应用层是通过显示代理主体来间接调用显示委托主体,不与显示委托主体直接对接,也就不会与显示实现组件直接对接,即使显示实现组件发生变化,例如移植到不同的芯片,也不需要修改显示应用层,从而降低了显示应用层的复杂度并改善了显示应用层的灵活性。

附图说明

图1是本发明基于代理模式的多媒体显示方法一实施例的流程示意图;

图2是本发明基于代理模式的多媒体显示方法一实施例中待显示多媒体数据以缓冲区的形式进行传输的情况下s1的流程示意图;

图3是本发明基于代理模式的多媒体显示方法一实施例中整体架构的示意图;

图4是本发明基于代理模式的多媒体显示方法一实施例中显示委托主体为非cs架构且不包括显示实现组件的情况下的整体架构的示意图;

图5是本发明基于代理模式的多媒体显示方法一实施例中显示委托主体为cs架构且不包括显示实现组件的情况下的整体架构的示意图;

图6是本发明基于代理模式的多媒体显示方法一实施例中显示委托主体为非cs架构且包括显示实现组件的情况下的整体架构的示意图;

图7是本发明基于代理模式的多媒体显示方法一实施例中显示委托主体为cs架构且包括显示实现组件的情况下的整体架构的示意图;

图8是本发明基于代理模式的多媒体显示方法一实施例中来自一个显示应用程序对应一个显示屏的示意图;

图9是本发明基于代理模式的多媒体显示方法一实施例中来自一个显示应用程序的待显示多媒体数据同时显示在两个对应的显示屏上的示意图;

图10是本发明基于代理模式的多媒体显示方法一实施例中来自两个显示应用程序的待显示多媒体数据同时显示在一个对应的显示屏上的示意图;

图11是本发明基于代理模式的多媒体显示方法一实施例中显示屏数量无法满足显示应用程序的显示需求情况下按照优先级选择可显示的待显示多媒体数据的示意图;

图12是本发明基于代理模式的多媒体显示方法一具体实施例的整体显示流程示意图;

图13是本发明基于代理模式的多媒体显示方法一具体实施例中显示委托主体为非cs架构且处理控制流时的流程示意图;

图14是本发明基于代理模式的多媒体显示方法一具体实施例中显示委托主体为非cs架构且处理数据流时的流程示意图;

图15是本发明基于代理模式的多媒体显示方法一具体实施例中显示委托主体为cs架构且处理控制流时的流程示意图;

图16是本发明基于代理模式的多媒体显示方法一具体实施例中显示委托主体为cs架构且处理数据流时的流程示意图;

图17是本发明基于代理模式的多媒体显示方法另一具体实施例的整体显示流程示意图;

图18是本发明基于代理模式的多媒体显示方法另一具体实施例中显示委托主体为非cs架构且处理控制流时的流程示意图;

图19是本发明基于代理模式的多媒体显示方法另一具体实施例中显示委托主体为非cs架构且处理数据流时的流程示意图;

图20是本发明基于代理模式的多媒体显示方法又一具体实施例的整体显示流程示意图;

图21是本发明基于代理模式的多媒体显示方法再一具体实施例的整体显示流程示意图;

图22是本发明基于代理模式的多媒体显示方法再一具体实施例中显示委托主体为非cs架构且处理控制流时的流程示意图;

图23是本发明基于代理模式的多媒体显示方法再一具体实施例中显示委托主体为非cs架构且处理数据流时的流程示意图;

图24是本发明基于代理模式的多媒体显示方法再一具体实施例中显示委托主体为cs架构且处理控制流时的流程示意图;

图25是本发明基于代理模式的多媒体显示方法再一具体实施例中显示委托主体为cs架构且处理数据流时的流程示意图;

图26是本发明基于代理模式的多媒体显示装置一实施例的结构示意图;

图27是本发明基于代理模式的多媒体显示设备二实施例的结构示意图;

图28是本发明可读存储介质一实施例的结构示意图。

具体实施方式

下面结合附图和实施例对本发明进行详细说明。以下各实施例中不冲突的可以相互结合。

如图1所示,本发明基于代理模式的多媒体显示方法一实施例包括:

s1:显示代理主体接收来自于显示应用层的待显示多媒体数据,并向显示委托主体发送待显示多媒体数据。

本实施例应用于内置有嵌入式系统的芯片,例如内置有linux系统的车载显示芯片。嵌入式系统包括显示应用层、显示代理主体、显示委托主体和显示实现组件。显示应用层包括显示应用程序和/或中间件,显示实现组件包括显示驱动或显示系统。显示代理主体和显示委托主体独立于显示应用层。

显示应用程序可以为需要用到显示功能的应用程序,例如视频播放应用、图片浏览应用等。由于显示内容(视频/字幕/图片等)有可能采用了某种编码,显示应用程序可能需要对其进行解码之后再进行显示,解码可以由显示应用程序自身完成,也可以调用中间件来完成。对于视频文件,除了解码之外,还要对视频文件进行分流,以将视频流、音频流以及可能包括的字幕流分离开,类似的,分流也可以由显示应用程序自身完成,也可以调用中间件来完成。中间件可以包括播放框架、图片显示框架等中的至少一种。

播放框架(例如gstreamer、directshow、ffmpeg等)可以理解为一个软件平台,在这个平台上设计了一套直观紧凑的api接口。上层应用程序通过这些接口,能够透明化的使用此软件平台提供的功能,如文件分流、解析、编解码等等。

显示代理主体提供了多个可用于实现显示功能的接口以供显示应用层调用,但显示代理主体本身并不具有显示功能,实际显示功能是由显示委托主体实现的。为实现显示功能,显示委托主体需要与显示实现组件对接,或者显示委托主体包括显示实现组件以在内部进行对接。显示代理主体作为显示委托主体的代理,主要负责显示应用层与显示委托主体之间的数据和控制命令的交互。

可选的,在本步骤之前,显示代理主体可以接收来自于显示应用层的配置信息并将其转发给显示委托主体。配置信息的传输可以一次完成,也可以分成至少两次来完成。配置信息包括选定的格式、分辨率、缓冲区信息、显示窗口信息、优先级中的至少一种。缓冲区信息包括缓冲区格式和/或缓冲区总数,显示窗口信息包括显示窗口位置、显示窗口宽度、显示窗口高度中的至少一种。

显示应用层和显示委托主体/显示实现组件可以就部分或全部配置信息的默认值有预先约定,如果显示应用层确定的某些种类配置信息的值是默认值,则可以在配置过程中选择省去这些种类的配置信息。

可选的,在配置信息的传输之前,显示应用层可以通过显示代理主体获取代理委托主体的支持属性信息,支持属性信息包括支持的格式集合和/或支持的字符集。一般而言,支持的格式集合是针对图片属性的显示内容,例如视频、图片、图片格式的字幕等;支持的字符集是针对文本属性的显示内容,例如文字、文本格式的字幕等。除此之外,支持属性信息还可以包括优先级的支持信息、多路显示的支持信息等。

待显示多媒体数据可以包括字幕、已解码的图片数据、已解码的视频数据中的至少一种。被传输的待显示多媒体数据可以是其自身,也可以是由显示应用层填充了待显示多媒体数据的缓冲区。

如图2所示,若待显示多媒体数据以缓冲区的形式进行传输,s1可以具体包括:

s11:显示代理主体从显示委托主体获取空闲缓冲区。

s12:显示代理主体向显示应用层发送空闲缓冲区,以供显示应用层向空闲缓冲区填充待显示多媒体数据。

如果待显示多媒体数据包括文本字幕,即文本格式的字幕,显示应用层需要先将文本字幕转换为图片格式的字幕再进行填充。

s13:显示代理主体接收来自于显示应用层的已填充的缓冲区。

s14:显示代理主体向显示委托主体发送已填充的缓冲区。

根据显示委托主体的实际架构,显示代理主体可以具体向显示实现模块或显示客户端模块发送已填充的缓冲区。

显示委托主体/显示实现组件可读取已填充的缓冲区中的数据以进行显示,读取/显示完成之后该缓冲区恢复空闲。

s2:显示委托主体向显示实现组件或显示应用层发送待显示多媒体数据,以在显示屏上显示。

一般来说,显示委托主体可以调用显示实现组件以绘制待显示多媒体数据,实现在显示屏上显示待显示多媒体数据。在某些实施例中,显示委托主体可以调用其他程序来显示待显示多媒体数据,例如,当待显示多媒体数据包括字幕时,显示委托主体可以调用显示应用程序提供的函数来绘制字幕。

通过本实施例的实施,显示应用层通过显示代理主体接收来自于显示应用层的待显示多媒体数据并发给显示委托主体;显示委托主体向显示实现组件或显示应用层发送待显示多媒体数据,以在显示屏上显示。与显示实现组件或显示应用层对接以实现显示功能的是显示委托主体,显示代理主体是显示委托主体的代理,显示应用层是通过显示代理主体来间接调用显示委托主体,不与显示委托主体直接对接,也就不会与显示实现组件直接对接,即使显示实现组件发生变化,例如移植到不同的芯片,也不需要修改显示应用层,从而降低了显示应用层的复杂度并改善了显示应用层的灵活性。

本实施例的整体架构如图3所示,其中显示应用层11通过显示代理主体12来调用显示委托主体13。由于显示应用层11不再与显示委托主体30直接对接,使得实际实现显示功能的显示委托主体13可以是客户端/服务器(client/server,cs)架构。根据显示委托主体13是否为cs架构,以及其中是否包括显示实现组件,图3所示的整体架构可以被分为四种,以下结合附图对其进行描述。

显示委托主体为非cs架构且不包括显示实现组件的情况下,整体架构如图4所示,其中显示委托主体130包括显示实现模块131,显示实现模块131用于与显示实现组件140对接以实现显示功能。具体的,显示实现模块131可以将来自于显示代理主体120的待显示多媒体数据发送给显示实现组件140,以使显示实现组件140控制显示屏150显示待显示多媒体数据。可选的,显示委托主体130和显示代理主体120可以与显示应用层110属于同一个进程。

显示委托主体为cs架构且不包括显示实现组件的情况下,整体架构如图5所示,其中显示委托主体230包括显示客户端模块231和显示服务端模块232,显示服务端模块232用于与显示实现组件240对接以实现显示功能,显示客户端模块231用于与显示代理主体220对接。具体的,显示客户端模块231可以将来自于显示代理主体220的待显示多媒体数据发送给显示服务端模块232,显示服务端模块232可以将收到的待显示多媒体数据发送给显示实现组件240,以使显示实现组件240控制显示屏250显示待显示多媒体数据。可选的,显示客户端模块231和显示服务端模块232可以属于不同的进程,彼此之间通过进程间通信进行交互。

显示委托主体为非cs架构且包括显示实现组件的情况下,整体架构如图6所示,该架构与图4所示的架构的区别在于显示委托主体330进一步包括了显示实现组件332,具体内容可参见前述相应描述。

显示委托主体为cs架构且包括显示实现组件的情况下,整体架构如图7所示,该架构与图5所示的架构的区别在于显示委托主体430进一步包括了显示实现组件433,具体内容可参见前述相应描述。

若出现同时要求显示的显示应用程序和/或显示屏的数量大于一,简称为多路显示,每个显示应用程序对应一个显示代理主体,对于显示委托主体,在非cs架构下,每个显示应用程序需要分别对应一个显示实现模块,在cs架构下,每个显示应用程序需要分别对应一个显示客户端模块,每个显示客户端模块在显示服务端模块中分别对应一个显示对象,显示服务端模块管理所有的显示对象。对于非cs架构,由于显示实现模块直接与显示实现组件对接,多路显示的控制需要由显示实现组件来完成,使得显示实现组件的复杂度上升,不易控制。对于cs架构,显示服务端模块管理所有的显示对象,能够获取每个显示对象的配置信息和待显示多媒体数据,从而决定是否显示以及如何显示每个显示对象的待显示多媒体数据,完成多路显示的控制。由于cs架构下的多路显示的控制由显示服务端模块而非显示实现组件完成,不需要使用复杂的显示实现组件,比非cs架构更便于处理多路显示。

具体的,根据显示应用程序和显示屏的数量以及显示应用程序的显示需求,多路显示可以分为多种情况,下面结合附图分别举例说明。

一种情况是一个显示应用程序对应一个显示屏进行显示。举例说明,参考图8,显示应用程序a通过显示代理主体a和显示客户端模块a将待显示多媒体数据a发送给显示服务端模块中的显示对象a,显示应用程序b通过显示代理主体b和显示客户端模块b将待显示多媒体数据b发送给显示服务端模块中的显示对象b,显示服务端模块将待显示多媒体数据a送给显示系统中的覆盖区对象1(对应于显示屏1)以在显示屏1上显示,将待显示多媒体数据b送给显示系统中的覆盖区对象2(对应于显示屏2)以在显示屏2上显示。

另一种情况是一个显示应用程序分别对应至少二个显示屏进行显示,即来自一个显示应用程序的待显示多媒体数据同时显示在至少两个对应的显示屏上,可以通过对待显示多媒体数据进行复制处理来满足这一要求。举例说明,参考图9,显示应用程序c通过显示代理主体c和显示客户端模块c将待显示多媒体数据c发送给显示服务端模块中的显示对象c,显示服务端模块将待显示多媒体数据c复制一份得到c’,将待显示多媒体数据c送给显示系统中的覆盖区对象3(对应于显示屏3)以在显示屏3上显示,将待显示多媒体数据c’送给显示系统中的覆盖区对象4(对应于显示屏4)以在显示屏4上显示。

又一种情况是来自至少两个显示应用程序对应一个显示屏,即两个显示应用程序的待显示多媒体数据同时显示在一个对应的显示屏上,可以通过对待显示多媒体数据进行混合来满足这一要求。举例说明,参考图10,显示应用程序d通过显示代理主体d和显示客户端模块d将待显示多媒体数据d发送给显示服务端模块中的显示对象d,显示应用程序e通过显示代理主体e和显示客户端模块e将待显示多媒体数据e发送给显示服务端模块中的显示对象e,显示服务端模块将待显示多媒体数据d和待显示多媒体数据e混合之后发送给显示系统中的覆盖区对象5(对应于显示屏5)以在显示屏5上同时显示。

理想的情况下,待显示多媒体数据d和待显示多媒体数据e所占据的显示窗口并无重叠,可以同时完整的显示两者,但实际有可能出现两个显示窗口有所重叠,此时可以由显示服务端模块来决定哪个在前面(即在重叠部分进行显示),哪个在后面(即在重叠部分不进行显示),例如可以根据显示应用程序d和e的优先级来决定,优先级高的在前。

每个显示应用程序所需求的显示屏的数量不一定是一,因此在有多个显示应用程序需要显示时,可以先判断显示屏的数量能否满足显示应用程序的显示需求。如果出现显示屏的数量不能满足显示应用程序的显示需求,此时有部分显示应用程序的待显示多媒体数据无法被显示。举例说明,参考图11,显示应用程序f通过显示代理主体f和显示客户端模块f将待显示多媒体数据f发送给显示服务端模块中的显示对象f,显示应用程序g通过显示代理主体g和显示客户端模块g将待显示多媒体数据g发送给显示服务端模块中的显示对象g,由于只有一块显示屏6,并且显示应用程序f要求全屏显示,因此显示服务端模块无法对待显示多媒体数据f和g进行混合,只能选择其中一个送给覆盖区对象6(对应于显示屏6)进行显示。本例中是选择来自于优先级更高的显示应用程序f的待显示多媒体数据f,待显示多媒体数据g不显示。

以上虽然分了四种情况进行说明,但是这四种情况彼此之间并不互相排斥,有可能以组合的方式同时出现的。上面的例子中,除了特意限定的单个显示应用程序/显示屏之外,其他的显示应用程序/显示屏的数量(例如两个)仅为示意,实际数量可以变化,只要满足限制条件(例如至少两个)即可;与显示屏对接的均为显示系统,实际可以为显示驱动。此外,在上面的例子中都是基于cs架构的显示委托主体,实际多路显示也可以应用于基于非cs架构的显示委托主体。

显示内容可以包括视频、图片、字幕等中的至少一种,其对应的待显示多媒体数据分别为已解码的视频数据、已解码的图片数据、字幕。其中视频和字幕都是动态显示,即在正常播放没有任何操作干扰的情况下,显示内容是在不断变化的,视频流可以被划分为很多个图形帧,字幕流可以被划分成很多句,每个图形帧和每句字幕都有规定的显示时段。而图片的显示是静态的。

下面结合附图举例说明针对不同的显示内容的完整显示过程。

在本发明一具体实施例中,显示内容为视频,本实施例是对前述实施例的进一步扩展,与其相同的部分不再重复。本实施例整体的显示流程如图12所示:

s101:显示应用程序设定视频文件路径给播放框架。

s102:播放框架解析视频文件后,显示应用程序从播放框架获取是否有视频流数据。

s103:如果有视频流数据,则显示应用程序创建显示代理主体。

s104:显示应用程序设定显示代理主体给播放框架。

s105:播放框架通过显示代理主体获取显示委托主体的支持属性信息,支持属性信息包括支持的格式集合。

s106:播放框架通过显示代理主体配置显示委托主体。

例如选择一种格式,需要的缓冲区的总数、宽度、高度等。

s107:播放框架通过显示代理主体从显示委托主体获取空闲缓冲区。

s108:播放框架向空闲缓冲区填充待显示多媒体数据。

待显示多媒体数据是解码后的当前待显示的图形帧。

s109:播放框架通过显示代理主体向显示委托主体发送已填充的缓冲区。

s110:显示委托主体在显示屏上显示待显示多媒体数据。

显示完成后该缓冲区恢复空闲。

s111:判断是否所有图形帧都已经显示完。

若是,则结束流程,若否,则跳转到s107以重复执行s107及其后续步骤。

在具体的显示流程中,显示应用程序/播放框架与显示代理主体,显示代理主体与显示委托主体之间传输的,除了显示所需的具体数据(例如显示代理主体的句柄、配置参数、缓冲区标识等)之外,还包括为传输具体数据所需的控制命令(例如将显示代理主体配置给播放框架的指令、配置指令、获取缓冲区的指令等)。具体数据和控制命令的传输可以是分开进行的,也可以是同时进行的,例如在显示应用程序将显示代理主体配置给播放框架的过程中,显示应用程序同时向播放框架发送配置显示代理主体的指令及显示代理主体的句柄。显示流程中控制命令组成的整体可以被称为控制流,具体数据组成的整体可以被称为数据流。

以下根据显示委托主体是否为cs架构以及处理的对象是控制流还是数据流分别说明。在具体流程中,如果待显示的数据不止一份,可以在当前数据的显示完成后,重复执行调用缓冲区、填充数据及送数据给底层的显示实现组件进行显示的部分以继续显示后续部分。

显示委托主体为非cs架构且处理的对象是控制流的情况下,显示过程如图13所示:

s121:显示应用程序创建播放框架。

s122:显示应用程序设定多媒体文件,并加载文件。

s123:显示应用程序检测是否有视频流。

s124:如果有视频流,则显示应用程序创建显示代理主体。

s125:显示应用程序设定显示窗口宽度、显示窗口高度、显示窗口位置给显示代理主体。

s126:显示应用程序设定显示代理主体给播放框架。

s127:播放框架向显示代理主体发送获取支持的格式集合的请求。

s128:显示代理主体向显示实现模块发送获取支持的格式集合的请求。

播放框架通过显示代理主体从显示实现模块获取支持的格式集合。

播放框架从支持的格式集合中选择一个作为输出格式。

s129:播放框架设定缓冲区格式、缓冲区总数和分辨率给显示代理主体。

缓冲区格式与输出格式相匹配。

s130:显示代理主体根据缓冲区格式、缓冲区总数和分辨率设定显示实现模块。

s131:显示实现模块根据缓冲区格式、缓冲区总数和分辨率配置显示实现组件。

s132:显示代理主体通知显示实现模块分配缓冲区。

s133:显示实现模块从显示实现组件中分配缓冲区。

s134:播放框架调用显示代理主体获取一个空闲缓冲区。

s135:播放框架填充待显示多媒体数据到该缓冲区。

s136:播放框架将该缓冲区送给显示代理主体。

s137:显示代理主体将该缓冲区送给显示实现模块。

s138:显示实现模块将该缓冲区送给显示实现组件。

显示实现组件对该缓冲区中的内容进行显示,显示完成后该缓冲区恢复空闲。

显示委托主体为非cs架构且处理的对象是数据流的情况下,显示过程如图14所示:

s141:显示应用程序向播放框架发送文件路径。

s142:播放框架解析文件后向显示应用程序发送流总数,类型。

流是指文件中包括的媒体流,例如视频、音频、字幕等,例如解析出1路视频,2路音频,2路字幕。

s143:显示应用程序获取显示代理主体的句柄。

s144:显示应用程序向播放框架发送显示代理主体的句柄。

s145:显示应用程序向显示代理主体发送显示窗口宽度、显示窗口高度、显示窗口位置。

s146:显示代理主体向播放框架发送支持的格式集合。

播放框架从支持的格式集合中选择一个作为输出格式。

s147:播放框架向显示代理主体发送缓冲区格式、缓冲区总数、分辨率等配置信息。

s148:显示代理主体向显示实现模块发送缓冲区格式、缓冲区总数、分辨率等配置信息。

s149:显示实现模块向显示实现组件发送缓冲区格式、缓冲区总数、分辨率等配置信息。

s150:显示实现组件向显示实现模块发送获取到的空闲缓冲区集合。

s151:显示实现模块向显示代理主体发送获取到的空闲缓冲区。

本步骤中的空闲缓冲区属于前一步骤中的空闲缓冲区集合。

s152:显示代理主体向播放框架发送该空闲缓冲区。

s153:播放框架填充待显示多媒体数据到该空闲缓冲区。

s154:播放框架将填充好数据的缓冲区发送给显示代理主体。

s155:显示代理主体将填充好数据的缓冲区发给显示实现模块。

s156:显示实现模块判断是否要显示。

s157:判定要显示的情况下,显示实现模块将填充好数据的缓冲区发送给显示实现组件。

显示完成后,该缓冲区变为空闲状态。

s158:显示完成后,显示实现组件向显示实现模块返回获取到的空闲缓冲区。

显示委托主体为cs架构且处理的对象是控制流的情况下,显示过程如图15所示:

s161:显示应用程序创建播放框架。

s162:显示应用程序设定多媒体文件,并加载文件。

s163:显示应用程序检测是否有视频流。

s164:如果有视频流,则显示应用程序创建显示代理主体。

s165:显示代理主体创建显示客户端模块。

s166:显示客户端模块在显示服务端模块中创建对应的显示对象。

s167:显示应用程序设定显示代理主体给播放框架。

s168:显示应用程序设定显示窗口宽度、显示窗口高度、显示窗口位置给显示代理主体。

s169:显示代理主体设定显示窗口宽度、显示窗口高度、显示窗口位置给显示客户端模块。

s170:显示客户端模块设定显示窗口宽度、显示窗口高度、显示窗口位置给显示对象。

s171:显示服务端模块设定显示窗口宽度、显示窗口高度、显示窗口位置给显示实现组件。

s172:播放框架向显示代理主体发送获取支持的格式集合的请求。

s173:显示代理主体向显示客户端模块发送获取支持的格式集合的请求。

s174:显示客户端模块向显示服务端模块发送获取支持的格式集合的请求。

s175:显示服务端模块从显示实现组件获取支持的格式集合。

s176:显示服务端模块通过显示客户端模块和显示代理主体向播放框架返回支持的格式集合。

播放框架从支持的格式集合中选择一个作为输出格式。

s177:播放框架设定缓冲区格式、缓冲区总数和分辨率等配置信息给显示代理主体。

s178:显示代理主体设置缓冲区格式、缓冲区总数、分辨率等配置信息给显示客户端模块。

s179:显示客户端模块设置缓冲区格式、缓冲区总数、分辨率等配置信息给显示服务端模块。

s180:显示服务端模块根据缓冲区格式、缓冲区总数、分辨率等配置信息设定显示实现组件。

s181:显示客户端模块通知显示服务端模块分配缓冲区。

s182:显示服务端模块从显示实现组件中分配缓冲区。

s183:播放框架调用显示代理主体发送获取一个缓冲区的请求。

s184:显示代理主体向显示客户端模块发送获取一个空闲缓冲区的请求。

s185:显示客户端模块向显示服务端模块发送获取一个空闲缓冲区的请求。

s186:显示服务端模块从显示实现组件获取一个空闲缓冲区。

s187:显示服务端模块通过显示客户端模块和显示代理主体向播放框架返回空闲缓冲区。

s188:播放框架填充待显示多媒体数据到该缓冲区。

s189:播放框架将该缓冲区送给显示代理主体。

s190:显示代理主体将该缓冲区送给显示服务端模块。

s191:显示服务端模块判断是否要显示。

s192:判定要显示的情况下,显示服务端模块将该缓冲区送给显示实现组件。

显示委托主体为cs架构且处理的对象是数据流的情况下,显示过程如图16所示:

s201:显示应用程序向播放框架发送文件路径。

s202:播放框架解析文件后向显示应用程序发送流总数,类型。

s203:显示客户端模块从显示服务端模块获取显示客户端模块对应的显示对象的标识。

s204:显示代理主体获取显示客户端模块的句柄。

s205:显示应用程序获取显示代理主体的句柄。

s206:显示应用程序向播放框架发送显示代理主体的句柄。

s207:显示应用程序设定显示窗口宽度、高度、位置给显示代理主体。

s208:显示服务端模块从显示实现组件获取支持的格式集合。

s209:显示客户端模块从显示服务端模块获取支持的格式集合。

s210:显示代理主体从显示客户端模块获取支持的格式集合。

s211:播放框架从显示代理主体获取支持的格式集合。

播放框架从支持的格式集合中选择一个作为输出格式。

s212:播放框架向显示代理主体发送缓冲区格式、缓冲区总数、分辨率等配置信息。

s213:显示代理主体向显示客户端模块发送缓冲区格式、缓冲区总数、分辨率等配置信息。

s214:显示客户端模块向显示服务端模块发送缓冲区格式、缓冲区总数、分辨率等配置信息。

s215:显示服务端模块向显示实现组件发送缓冲区格式、缓冲区总数、分辨率等配置信息。

s216:显示实现组件向显示服务端模块发送获取到的空闲缓冲区集合。

s217:显示服务端模块向显示客户端模块发送获取到的空闲缓冲区集合。

s218:显示客户端模块向显示代理主体发送获取到的一个空闲缓冲区。

该空闲缓冲区属于前一步骤中的空闲缓冲区集合。

s219:显示代理主体向播放框架发送该空闲缓冲区。

s220:播放框架填充待显示多媒体数据到该空闲缓冲区。

s221:播放框架向显示代理主体发送填充好数据的缓冲区。

s222:显示代理主体向显示客户端模块发送填充好数据的缓冲区。

s223:显示客户端模块向显示服务端模块发送填充好数据的缓冲区。

s224:显示服务端模块向显示实现组件发送填充好数据的缓冲区。

显示完成后该缓冲区变回空闲状态。

s225:显示实现组件获取空闲缓冲区。

在本发明另一具体实施例中,显示内容为字幕且显示委托端调用显示应用程序提供的函数来显示字幕,本实施例是对前述实施例的进一步扩展,与其相同的部分不再重复。本实施例整体的显示流程如图17所示:

s231:显示应用程序设定文件路径给播放框架。

s232:播放框架解析文件后,显示应用程序从播放框架获取是否有字幕流数据。

s233:如果有字幕流数据,则显示应用程序创建显示代理主体。

s234:显示应用程序设定显示代理主体给播放框架。

s235:播放框架通过显示代理主体获取显示委托主体的支持属性信息,支持属性信息包括支持的格式集合和/或字符集等。

s236:播放框架通过显示代理主体配置显示委托主体。

例如选择一种格式,需要的缓冲区的总数、宽度、高度等。

s237:播放框架通过显示代理主体从显示委托主体获取空闲缓冲区。

s238:播放框架向空闲缓冲区填充待显示多媒体数据。

待显示多媒体数据是当前字幕,可以为图片格式或者进行字符集转换后的文本格式。

s239:播放框架通过显示代理主体向显示委托主体发送已填充的缓冲区。

s240:显示委托主体调用显示应用程序提供的函数绘制图片或文本格式的当前字幕。

如果显示委托主体为非cs架构,则由显示实现模块从显示代理主体接收已填充的缓冲区后调用函数来绘制当前字幕。如果显示委托主体为cs架构,则由显示客户端模块从显示代理主体接收已填充的缓冲区后发给显示服务端模块,显示服务端模块调用函数来绘制当前字幕。

显示完成后该缓冲区恢复空闲。

s241:判断是否所有字幕都已经显示完。

若是,则结束流程,若否,则跳转到s237以重复执行s237及其后续步骤。

以下以显示委托主体为非cs架构为例根据处理的对象是控制流还是数据流分别说明。在具体流程中,如果待显示的数据不止一份,可以在当前数据的显示完成后,重复执行调用缓冲区、填充数据及送数据给底层的显示实现组件进行显示的部分以继续显示后续部分。

处理的对象是控制流的情况下,显示过程如图18所示:

s251:显示应用程序创建播放框架。

s252:显示应用程序设定多媒体文件,并加载文件。

s253:显示应用程序检测是否有字幕流。

s254:如果有字幕流,则显示应用程序创建显示代理主体。

s255:显示应用程序设定显示代理主体给播放框架。

s256:播放框架向显示代理主体发送获取支持的格式集合以及drawtext支持的字符集的请求。

其中drawtext是显示应用程序提供的能够处理文本格式字幕的绘制函数。

s257:显示代理主体向显示实现模块发送获取显示实现模块支持的格式集合以及drawtext支持的字符集的请求。

s258:显示实现模块获取显示应用程序drawpicture支持的格式集合以及drawtext支持的字符集。

其中drawpicture是显示应用程序提供的能够处理图片格式字幕的绘制函数。

播放框架通过显示代理主体从显示实现模块获取支持的格式集合及字符集。

播放框架从支持的格式集合/字符集中选择一个作为输出格式。

s259:播放框架设定缓冲区格式(如果是图片字幕)、缓冲区总数、分辨率给显示代理主体。

缓冲区格式与输出格式相匹配。

s260:显示代理主体根据缓冲区格式、缓冲区总数、分辨率设定显示实现模块。

s261:显示代理主体分配缓冲区。

s262:播放框架调用显示代理主体获取一个缓冲区。

s263:如果是文本字幕,则播放框架转换为支持的字符集。

s264:播放框架填充待显示多媒体数据到该缓冲区。

s265:播放框架送该缓冲区给显示代理主体。

s266:显示代理主体送该缓冲区给显示实现模块。

s267:显示实现模块调用显示应用程序提供的函数绘制字幕图片或文本。

处理的对象是数据流的情况下,显示过程如图19所示:

s271:显示应用程序向播放框架发送文件路径。

s272:播放框架解析文件后向显示应用程序发送流总数,类型。

流是指文件中包括的媒体流,例如视频、音频、字幕等,例如解析出1路视频,2路音频,2路字幕。

s273:显示应用程序获取显示代理主体的句柄。

s274:显示应用程序向播放框架发送显示代理主体的句柄。

s275:显示应用程序通过显示代理主体向显示实现模块发送获取支持的格式集合及字符集的请求。

s276:显示实现模块向显示代理主体发送支持的格式集合及字符集。

s277:显示代理主体向播放框架发送支持的格式集合及字符集。

播放框架从支持的格式集合及字符集中选择一个作为输出格式。

s278:播放框架向显示代理主体发送缓冲区格式、缓冲区总数、分辨率等配置信息。

s279:显示代理主体向显示实现模块发送缓冲区格式、缓冲区总数、分辨率等配置信息。

s280:显示实现模块向显示代理主体发送获取到的一个空闲缓冲区。

s281:显示代理主体向播放框架发送该空闲缓冲区。

s282:播放框架填充待显示多媒体数据到该空闲缓冲区。

s283:播放框架将填充好数据的缓冲区发送给显示代理主体。

s284:显示代理主体将填充好数据的缓冲区发给显示实现模块。

s285:显示实现模块将需要绘制的图片数据或者文本数据发送给显示应用程序以进行绘制。

本实施例中给出的具体流程中显示委托主体均为非cs架构,如果显示委托主体为cs架构,则由其中的显示服务端模块调用显示应用程序提供的函数来绘制字幕。

在本发明又一具体实施例中,显示内容为字幕且显示委托端调用显示实现组件来显示字幕,本实施例是对前述实施例的进一步扩展,与其相同的部分不再重复。本实施例整体的显示流程如图20所示:

s301:显示应用程序设定文件路径给播放框架。

s302:播放框架解析文件后,显示应用程序从播放框架获取是否有字幕流数据。

s303:如果有字幕流数据,则显示应用程序创建显示代理主体。

s304:显示应用程序设定显示代理主体给播放框架。

s305:播放框架通过显示代理主体获取显示委托主体的支持属性信息,支持属性信息包括支持的格式集合和/或字符集等。

s306:播放框架通过显示代理主体配置显示委托主体。

例如选择一种格式,需要的缓冲区的总数、宽度、高度等。

s307:播放框架通过显示代理主体从显示委托主体获取空闲缓冲区。

s308:如果待显示的字幕是文本格式,则播放框架将其转换为图片数据。

如果待显示的字幕是图片格式,则本步骤可以省去。

s309:播放框架向空闲缓冲区填充待显示多媒体数据。

待显示多媒体数据是图片格式的字幕数据。

s310:播放框架通过显示代理主体向显示委托主体发送已填充的缓冲区。

s311:显示委托主体在显示屏上显示待显示多媒体数据。

显示完成后该缓冲区恢复空闲。

s312:判断是否所有字幕都已经显示完。

若是,则结束流程,若否,则跳转到s307以重复执行s307及其后续步骤。

对于在显示委托主体是否为cs架构以及处理的对象是控制流还是数据流的情况下的具体流程,除了播放框架在向缓冲区填充待显示多媒体数据之前需要判断待显示的字幕是否为文本格式,如果为文本格式需要将字幕转换为图片格式之外,剩余部分可参考前述视频的具体处理流程,在此不再重复。

在本发明再一具体实施例中,显示内容为图片,本实施例是对前述实施例的进一步扩展,与其相同的部分不再重复。本实施例整体的显示流程如图21所示:

s401:显示应用程序创建显示代理主体。

s402:显示应用程序设定显示窗口宽度、显示窗口高度、显示窗口位置等配置信息给显示代理主体。

s403:显示应用程序设定待解码的图片文件路径或图片数据给图片显示框架。

s404:图片显示框架对图片文件或图片数据进行解码。

s405:显示应用程序从图片显示框架获取解码后的数据及其宽度、高度、格式等信息。

s406:显示应用程序向显示代理主体发送解码后的数据及其宽度、高度、格式等信息。

s407:显示代理主体向显示委托主体发送解码后的数据及其宽度、高度、格式等信息。

s408:显示委托主体在显示屏上显示待显示多媒体数据。

以下根据显示委托主体是否为cs架构以及处理的对象是控制流还是数据流分别说明。

显示委托主体为非cs架构且处理的对象是控制流的情况下,显示过程如图22所示:

s411:显示应用程序创建显示代理主体。

s412:显示代理主体创建自身对应的句柄。

s413:显示应用程序设定图片显示位置和显示窗口大小给显示代理主体。

s414:显示代理主体设定图片显示位置和显示窗口大小给显示实现模块。

s415:显示应用程序设定要解码的图片文件路径或图片数据给图片显示框架。

s416:显示应用程序从图片显示框架获取解码后的待显示多媒体数据及其对应的格式、宽高等信息。

s417:显示应用程序送解码后的待显示多媒体数据以及数据对应的宽高、格式等信息给显示代理主体。

s418:显示代理主体送解码后的待显示多媒体数据,对应的宽高、格式、显示窗口宽高、显示窗口位置等信息给显示实现模块。

s419:显示实现模块判断是否要显示。

s420:判定要显示的情况下,显示实现模块送解码后的待显示多媒体数据,对应的宽高、格式、显示窗口宽高、显示窗口位置等信息给显示实现组件以进行显示。

显示委托主体为非cs架构且处理的对象是数据流的情况下,显示过程如图23所示:

s421:显示实现模块发送显示实现模块的句柄给显示代理主体。

s422:显示代理主体发送显示代理主体的句柄给显示应用程序。

s423:显示应用程序设定图片显示位置和显示窗口大小给显示代理主体。

s424:显示代理主体设定图片显示位置和显示窗口大小给显示实现模块。

s425:显示应用程序设定要解码的图片文件路径或图片数据给图片显示框架。

s426:显示应用程序从图片显示框架获取解码后的待显示多媒体数据及其对应的格式、宽高等信息。

s427:显示应用程序送解码后的待显示多媒体数据以及数据对应的宽高、格式等信息给显示代理主体。

s428:显示代理主体送解码后的待显示多媒体数据,对应的宽高、格式、显示窗口宽高、显示窗口位置等信息给显示实现模块。

s429:显示实现模块送解码后的待显示多媒体数据,对应的宽高、格式、显示窗口宽高、显示窗口位置等信息给显示实现组件进行显示。

显示委托主体为cs架构且处理的对象是控制流的情况下,显示过程如图24所示:

s431:显示应用程序创建显示代理主体。

s432:显示代理主体创建对应的显示客户端模块。

s433:显示客户端模块在显示服务端模块中创建对应的显示对象。

s434:显示应用程序设定图片显示位置和显示窗口大小给显示代理主体。

s435:显示代理主体设定图片显示位置和显示窗口大小给显示客户端模块。

s436:显示应用程序设定要解码的图片文件路径或图片数据给图片显示框架。

s437:显示应用程序从图片显示框架获取解码后的待显示多媒体数据及其对应的格式、宽高等信息。

s438:显示应用程序送解码后的待显示多媒体数据以及数据对应的宽高、格式等信息给显示代理主体。

s439:显示代理主体送解码后的待显示多媒体数据,对应的宽高、格式、显示窗口宽高、显示窗口位置等信息给显示客户端模块。

s440:显示客户端模块送解码后的待显示多媒体数据,对应的宽高、格式、显示窗口宽高、显示窗口位置等信息给显示服务端模块。

s441:显示服务端模块判断是否要显示。

s442:判定要显示的情况下,显示服务端模块送解码后的待显示多媒体数据,对应的宽高、格式、显示窗口宽高、显示窗口位置等信息给显示实现组件进行显示。

显示委托主体为cs架构且处理的对象是数据流的情况下,显示过程如图25所示:

s451:显示服务端模块发送显示客户端模块对应的显示对象的id给显示客户端模块。

s452:显示客户端模块发送显示客户端模块的句柄给显示代理主体。

s453:显示代理主体发送显示代理主体的句柄给显示应用程序。

s454:显示应用程序设定图片显示位置和显示窗口大小给显示代理主体。

s455:显示代理主体设定图片显示位置和显示窗口大小给显示客户端模块。

s456:显示应用程序设定要解码的图片文件路径或图片数据给图片显示框架。

s457:显示应用程序从图片显示框架获取解码后的待显示多媒体数据及其对应的格式、宽高等信息。

s458:显示应用程序送解码后的待显示多媒体数据以及数据对应的宽高、格式等信息给显示代理主体。

s459:显示代理主体送解码后的待显示多媒体数据,对应的宽高、格式、显示窗口宽高、显示窗口位置等信息给显示客户端模块。

s460:显示客户端模块送解码后的待显示多媒体数据,对应的宽高、格式、显示窗口宽高、显示窗口位置等信息给显示服务端模块。

s461:显示服务端模块送解码后的待显示多媒体数据,对应的宽高、格式、显示窗口宽高、显示窗口位置等信息给显示实现组件进行显示。

如图26所示,本发明基于代理模式的多媒体显示装置一实施例属于内置有嵌入式系统的芯片,嵌入式系统包括显示应用层、显示代理主体、显示委托主体和显示实现组件,该多媒体装置包括:

显示代理主体51,用于接收来自于显示应用层的待显示多媒体数据,并向显示委托主体52发送待显示多媒体数据。

显示委托主体52,用于向显示实现组件或显示应用层发送待显示多媒体数据,以在显示屏上显示。

其中显示代理主体51是显示委托主体52的代理,显示代理主体51和显示委托主体52独立于显示应用层。

可选的,显示委托主体52为非cs架构或cs架构;为非cs架构的显示委托主体52包括显示实现模块,显示实现模块用于与显示实现组件或显示应用层对接以实现显示功能。cs架构的显示委托主体52包括显示客户端模块和显示服务端模块,显示服务端模块用于与显示实现组件或显示应用层对接以实现显示功能。

可选的,待显示多媒体数据包括已解码的图片数据、已解码的视频数据和字幕中的至少一种。显示代理主体51具体用于从显示委托主体52获取空闲缓冲区;向显示应用层发送空闲缓冲区,以供显示应用层向空闲缓冲区填充待显示多媒体数据;接收来自于显示应用层的已填充的缓冲区;向显示实现模块或显示客户端模块发送已填充的缓冲区。若显示委托主体52为非cs架构,显示实现模块具体用于向显示实现组件发送已填充的缓冲区,以使显示实现组件控制显示屏显示待显示多媒体数据。若显示委托主体52为cs架构,显示客户端模块具体用于向显示服务端模块发送已填充的缓冲区;显示服务端模块具体用于向显示实现组件发送已填充的缓冲区,以使显示实现组件控制显示屏显示待显示多媒体数据。

可选的,待显示多媒体数据包括字幕。显示代理主体51具体用于从显示委托主体52获取空闲缓冲区;向显示应用层发送空闲缓冲区,以供显示应用层向空闲缓冲区填充字幕;接收来自于显示应用层的已填充的缓冲区;向显示实现模块或显示客户端模块发送已填充的缓冲区。若显示委托主体52为非cs架构,显示实现模块具体用于调用显示应用层提供的函数在显示屏上绘制字幕。若显示委托主体52为cs架构,显示客户端模块具体用于向显示服务端模块发送已填充的缓冲区;显示服务端模块具体用于调用显示应用层提供的函数在显示屏上绘制字幕。

可选的,显示委托主体52为cs架构,显示应用层包括至少一个显示应用程序,每个显示应用程序分别对应一个显示代理主体51和一个显示客户端模块,每个显示客户端模块在显示服务端模块中分别对应一个显示对象,显示服务端模块用于管理显示对象。

若显示应用程序的数量大于一,显示服务端模块具体用于将来自至少两个显示应用程序的待显示多媒体数据混合之后发送给显示实现组件;或判断显示屏的数量是否满足显示应用程序的显示需求,若不满足,则将对应部分显示应用程序的待显示多媒体数据发送给显示实现组件;若满足,则将全部待显示多媒体数据发送给显示实现组件。

若显示屏的数量大于一,每个显示屏在显示实现组件分别对应一个覆盖区对象;显示服务端模块具体用于将待显示多媒体数据复制之后发送给至少两个覆盖区对象。

可选的,显示代理主体51进一步用于接收来自于显示应用层的获取代理委托主体的支持属性信息的请求,支持属性信息包括支持的格式集合和/或支持的字符集;并向显示委托主体52转发获取代理委托主体的支持属性信息的请求;接收来自于显示委托主体52的支持属性信息并向显示应用层发送支持属性信息。

可选的,显示代理主体51进一步用于接收来自于显示应用层的配置信息并向显示委托主体52发送配置信息,配置信息包括选定的格式、分辨率、缓冲区信息、显示窗口信息、优先级中的至少一种。

如图27所示,本发明基于代理模式的多媒体显示设备一实施例包括:处理器610和存储器620,处理器610连接存储器620。

存储器620用于存储处理器610运行所用的指令。

处理器610控制基于代理模式的多媒体显示装置的操作,处理器610还可以称为cpu(centralprocessingunit,中央处理单元)。处理器610可能是一种集成电路芯片,具有信号的处理能力。处理器610还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器620用于存储处理器610运行所用的指令。

处理器610用于执行指令以实现本发明基于代理模式的多媒体显示方法任一实施例以及任意不冲突的组合所提供的方法。

如图28所示,本发明可读存储介质一实施例包括存储器710,存储器710存储有指令,该指令被执行时实现本发明基于代理模式的多媒体显示方法任一实施例以及任意不冲突的组合所提供的方法。

存储器710可以包括只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、闪存(flashmemory)、硬盘、光盘等。

在本发明所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1