多媒体文件处理方法和电子设备的制作方法

文档序号:6500792阅读:122来源:国知局
多媒体文件处理方法和电子设备的制作方法
【专利摘要】本发明提供一种多媒体文件处理方法和电子设备。该方法包括:在接收播放多媒体文件的指令时,启动多媒体播放应用;通过所述多媒体播放应用中底层的多媒体播放引擎模块解码多媒体文件,获得解码后的多媒体数据;将解码后的多媒体数据直接提供给所述多媒体播放应用中上层的数据处理层模块,以生成与所述多媒体文件对应的图像信号和/或音频信号;以及输出所述图像信号和/或音频信号。
【专利说明】多媒体文件处理方法和电子设备

【技术领域】
[0001]本发明涉及电子设备的领域,更具体地,本发明涉及一种多媒体文件处理方法和电子设备。

【背景技术】
[0002]目前,各种电子设备的数据处理能力越来越强大。相应地,多种格式的多媒体文件的播放支持一直是衡量一个电子设备的多媒体处理能力的一个很重要参数。如果能够很方便的支持多格式的播放,则能够给用户很好的播放体验,能够大大的增加用户黏度。
[0003]例如,在目前基于Android操作系统的电子设备中,Android Ice Cream Sandwich已经有一个Android多媒体播放框架,但是能够播放的多种格式媒体文件却很少。为此,现有技术常用的方式是直接修改Android多媒体播放框架中的源码,把其他多媒体引擎加入此框架中或者扩展Android自带的多媒体播放引擎所支持的格式。
[0004]但是,该方式修改了原生Android多媒体播放框架中的源码,Android多媒体播放框架所在的进程属于系统进程,修改此源码会带来巨大风险,若产生漏洞,则会极大影响安装了此框架的设备的稳定性。另外,修改Android多媒体播放框架中的源码属于系统框架源码,不是应用程序,可移植性非常低。
[0005]此外,在现有的Android多媒体播放框架中,应用进程需要与系统进程通信以交换解码后的多媒体数据,这导致系统进程的负载过高以及处理响应时间的延迟。
[0006]为此,期望提供一种新颖的和改进的多媒体文件处理方法和电子设备,其能够快速地处理多媒体文件,并且能够在不同操作系统之间方便地移植。


【发明内容】

[0007]根据本发明一个实施例,提供了一种多媒体文件处理方法,包括:
[0008]在接收播放多媒体文件的指令时,启动多媒体播放应用;
[0009]通过所述多媒体播放应用中底层的多媒体播放引擎模块解码多媒体文件,获得解码后的多媒体数据;
[0010]将解码后的多媒体数据直接提供给所述多媒体播放应用中上层的数据处理层模块,以生成与所述多媒体文件对应的图像信号和/或音频信号;
[0011]输出所述图像信号和/或音频信号。
[0012]优选地,将解码后的多媒体数据直接提供给所述多媒体播放应用中上层的数据处理层模块包括:
[0013]提取基于第一操作系统的多媒体播放框架的源码;
[0014]解析所述源码,以确定多媒体播放框架的应用进程中的第一功能层模块和系统进程中的第二功能层模块,所述第一功能层模块用于接收输入数据和与系统进程进行通信,所述第二功能层模块用于启动第一操作系统的不同多媒体引擎来解码多媒体文件和与应用进程进行通信;
[0015]优化所述第一功能层模块和所述第二功能层模块,以去除所述第一功能层模块和所述第二功能层模块中用于进程之间的通信的功能;以及
[0016]合并优化后的第一功能层模块和第二功能层模块以生成所述数据处理层模块。
[0017]优选地,所述数据处理层模块具有与所述第一功能层模块相同的接收接口,用于以与所述第一功能层相同的工作方式接收输入数据。
[0018]优选地,所述数据处理层模块具有与所述第二功能层模块相同的启动接口,用于启动第一操作系统的不同多媒体引擎。
[0019]优选地,所述数据处理层通过所述启动接口,利用所述第一操作系统的多媒体引擎对多媒体文件进行硬解码。
[0020]优选地,除了与所述第二功能层模块相同的启动接口之外,所述数据处理层模块还具有另外的启动接口,用于启动另外的自定义多媒体引擎。
[0021]根据本发明另一个实施例,提供了一种电子设备,包括:
[0022]接收单元,用于用户的指令;
[0023]多媒体播放应用单元,用于在接收播放多媒体文件时,启动多媒体播放应用;
[0024]解码单元,用于通过所述多媒体播放应用中底层的多媒体播放引擎模块解码多媒体文件,获得解码后的多媒体数据;
[0025]数据处理单元,接收从所述解码单元直接提供的解码后的多媒体数据,以生成与所述多媒体文件对应的图像信号和/或音频信号;
[0026]输出单元,用于输出所述图像信号和/或音频信号。
[0027]优选地,所述数据处理单元通过以下方式形成:
[0028]提取基于第一操作系统的多媒体播放框架的源码;
[0029]解析所述源码,以确定多媒体播放框架的应用进程中的第一功能层模块和系统进程中的第二功能层模块,所述第一功能层模块用于接收输入数据和与系统进程进行通信,所述第二功能层模块用于启动第一操作系统的不同多媒体引擎来解码多媒体文件和与应用进程进行通信;
[0030]优化所述第一功能层模块和所述第二功能层模块,以去除所述第一功能层模块和所述第二功能层模块中用于进程之间的通信的功能;以及
[0031]合并优化后的第一功能层模块和第二功能层模块以生成所述数据处理单元。
[0032]优选地,所述数据处理单元具有与所述第一功能层模块相同的接收接口,用于以与所述第一功能层相同的工作方式接收输入数据。
[0033]优选地,所述数据处理单元具有与所述第二功能层模块相同的启动接口,用于启动第一操作系统的不同多媒体引擎。
[0034]优选地,所述数据处理层通过所述启动接口,利用所述第一操作系统的多媒体引擎对多媒体文件进行硬解码。
[0035]优选地,除了与所述第二功能层模块相同的启动接口之外,所述数据处理单元还具有另外的启动接口,用于启动另外的自定义多媒体引擎。
[0036]根据本发明实施例的多媒体文件处理方法和电子设备,在应用进程中,通过多媒体引擎解码后的多媒体数据直接传给应用进程中的数据处理模块,而没有应用进程与系统进程的通信,因此大大减少了系统进程的工作负荷,并且对多媒体数据的处理速度更快。

【专利附图】

【附图说明】
[0037]图1是描述根据本发明实施例的多媒体文件处理方法的流程图;
[0038]图2a和2b是描述现有技术的多媒体播放框架和根据本发明实施例的多媒体播放框架的比较图;以及
[0039]图3是描述根据本发明实施例的电子设备的功能框图。

【具体实施方式】
[0040]下面,将参考附图详细描述根据本发明的实施例。图1是描述根据本发明实施例的多媒体文件处理方法的流程图。
[0041]根据本发明实施例的多媒体文件处理方法100应用于安装有第一操作系统的电子设备中。这样的电子设备的示例例如包括平板电脑、台式机、智能手机、个人数字助理等等,只要该电子设备上安装有两个操作系统即可。此外,第一操作系统例如是Windows操作系统、Linux操作系统或Android操作系统。需要注意的是,第一操作系统不特别限定于上述系统,而是可以根据用户需要自由地设置。在本实施例中,将以第一操作系统是Android操作系统为例进行描述。
[0042]如图1所示,根据第一实施例的多媒体文件处理方法100包括:
[0043]步骤SlOl:在接收播放多媒体文件的指令时,启动多媒体播放应用;
[0044]步骤S102:通过所述多媒体播放应用中底层的多媒体播放引擎模块解码多媒体文件,获得解码后的多媒体数据;
[0045]步骤S103:将解码后的多媒体数据直接提供给所述多媒体播放应用中上层的数据处理层模块,以生成与所述多媒体文件对应的图像信号和/或音频信号;以及
[0046]步骤S104:输出所述图像信号和/或音频信号。
[0047]在步骤SlOl中,当用户选择期望观看的多媒体文件时,启动多媒体播放应用。该多媒体应用包括多个处理模块。最底层的是用于解码各种不同格式的多媒体文件的多媒体播放引擎。例如,用于解码AVI格式、MPEG格式、RMVB格式、各种流格式的多媒体文件的多媒体播放引擎。需要注意的是,该多媒体播放引擎可以是Android操作系统自带的多媒体播放引擎,也可以是由第三方开发的多媒体播放引擎。
[0048]在步骤S102中,通过与选择的多媒体文件格式相对应的多媒体播放引擎解码选择的多媒体文件,从而获得解码后的多媒体数据。需要注意的是,如果该多媒体播放引擎是Android操作系统自带的多媒体播放引擎,则可以复用Android多媒体播放框架中的大部分源码,从而大大减少开发者的工作量。此外,当复用Android多媒体播放框架中的大部分源码时,可以有效地利用Andoird多媒体播放框架已经集成号的硬解码接口,从而能够更有效并且更快速地解码多媒体文件。
[0049]在步骤S103,将在步骤S102中通过相应多媒体播放引擎解码后的多媒体数据直接提供给所述多媒体播放应用中上层的数据处理层模块,从而生成与所述多媒体文件对应的图像信号和/或音频信号。也就是说,在应用进程中,将底层多媒体播放引擎解码后的多媒体数据直接提供给上层的数据处理层模块,而不需要进程间通信来传递多媒体数据。
[0050]在根据本发明的多媒体文件处理方法中,因为在应用进程中,将底层多媒体播放引擎解码后的多媒体数据直接提供给上层的数据处理层模块,而不需要进程间通信来传递多媒体数据,所以对多媒体文件的处理不需要系统进程的介入,从而可以减少系统进程的工作负荷。根据本发明 申请人:的测试,与现有技术相比,系统进程的工作负荷能够减少10-20%。
[0051]另外,在应用进程中,将底层多媒体播放引擎解码后的多媒体数据直接提供给上层的数据处理层模块,并且生成与所述多媒体文件对应的图像信号和/或音频信号,而不需要进程间通信来传递多媒体数据。因此,对解码后的多媒体数据进行处理以生成对应的图像信号和/或音频信号的后续数据处理更快速,从而能够更快地完成整个多媒体文件的处理操作。根据本发明 申请人:的测试,与现有技术相比,整个多媒体文件的处理速度能够提高 10-20%。
[0052]在步骤S104中,利用通过显示器输出生成的图像信号和/或通过扬声器输出生成的音频信号。
[0053]下面,参考图2描述现有技术的多媒体播放框架和根据本发明实施例的多媒体播放框架。
[0054]图2a是示出现有技术的多媒体播放框架的示意图,并且图2b是示出根据本发明实施例的多媒体播放框架的示意图。如图2a所示,现有技术的多媒体播放框架中,系统进程在通过多媒体播放引擎解码多媒体文件之后,需要通过第二功能层模块(例如图2a中的MediaPlayerService so库层)与应用进程中的第一功能层模块(例如图2a中的MediaPlayer (CPPLayer) so库层)进行进程间通信,从而将解码的多媒体数据传递给应用进程。所述第一功能层模块用于接收输入数据和与系统进程进行通信,所述第二功能层模块用于启动第一操作系统的不同多媒体引擎来解码多媒体文件和与应用进程进行通信。例如,第二功能层模块和第一功能层模块可以通过共享内存的方式传递解码的多媒体数据。进一步地,该多媒体数据处理层还可以对解码的多媒体数据进行设置以获取当前播放进度,音量,视屏分辨率等等。
[0055]然后,解码后的多媒体数据通过上层的多媒体数据处理层(例如图2a中的MediaPlayer (Java Layer)JAR 包层和 MediaPlayer (JIN)so 库层)进行处理,从而生成与多媒体文件相对应的图像信号和/或音频信号,然后通过显示器和/或扬声器进行输出。
[0056]另一方面,如图2b所示,在根据本发明实施例的多媒体文件处理方法中,预先提取基于第一操作系统的多媒体播放框架的源码。例如,提取Android操作系统的多媒体播放框架的源码。
[0057]然后,解析所述源码,以确定多媒体播放框架的应用进程中的第一功能层模块(例如图2a中的MediaPlayerService so库层)和系统进程中的第二功能层模块(例如图2a中的MediaPlayer (CPP Layer) so库层),所述第一功能层模块用于接收输入数据和与系统进程进行通信,所述第二功能层模块用于启动第一操作系统的不同多媒体引擎来解码多媒体文件和与应用进程进行通信。需要注意的是,多媒体引擎可以与图2a中的多媒体引擎相同。
[0058]然后,优化所述第一功能层模块和所述第二功能层模块,以去除所述第一功能层模块和所述第二功能层模块中用于进程之间的通信的功能。具体地,对Android多媒体播放框架中的MediaPlayerService和MediaPlayer进行移植、优化、剪裁,以去掉进程间通信功能。
[0059]然后,合并优化后的第一功能层模块和第二功能层模块从而形成所述数据处理层模块(例如,Engine Abstract Layer (CPP Layer)so 库层)。该 EngineAbstract Layer 层能完成MediaPlayerService和MediaPlayer层的大部分功能,但是不需要进程间通信的功能。因此,如图2b所示,通过多媒体引擎解码后的多媒体数据将直接传递给数据处理层中的 Engine Abstract Layer (CPPLayer) so 库层。
[0060]优选地,该数据处理层还可以包括图2b中的MediaPlayer (Java Layer )JAR包层和MediaPlayer (JIN) so库层,用于对解码后的多媒体数据进行后处理以生成图像信号和
/或音频信号。
[0061]优选地,在图2的所述数据处理层模块中,Engine Abstract Layer (CPP Layer)so库层具有与所述第一功能层模块(MediaPlayer (CPP Layer)so库层)相同的接收接口,用于以与所述第一功能层相同的工作方式接收输入数据(例如,从用户接收的指令、各种操作指令、当前播放进度,音量,视屏分辨率等等)。
[0062]优选地,在图2的所述数据处理层模块中,Engine Abstract Layer (CPP Layer)so库层具有与所述第二功能层模块(MediaPlayerService so库层)相同的启动接口,用于启动第一操作系统的不同多媒体引擎。也就是说,Engine Abstract Layer (CPP Layer)so库层可以与第二功能层模块相同的方式调用各种多媒体引擎,从而解码不同格式的多媒体文件。
[0063]优选地,所述数据处理层通过所述启动接口,利用所述第一操作系统的多媒体引擎对多媒体文件进行硬解码。在根据本发明的多媒体文件处理方法中,因为可以复用Android多媒体播放框架的源码,所以可以有效利用Android多媒体播放框架集成好的硬解码接口来解码多媒体文件。
[0064]优选地,除了与所述第二功能层模块相同的启动接口之外,所述数据处理层模块还具有另外的启动接口,用于启动另外的自定义多媒体引擎。也就是说,除了复用Android多媒体播放框架的源码以外,用户还可以将第三方的多媒体集成到该应用中。
[0065]因此,根据本发明实施例的多媒体文件处理方法,通过消除应用进程和系统进程之间的进程间通信,能够大大地减少系统进程的工作负荷,并且提高多媒体文件的处理速度,此外,通过复用Android多媒体播放框架的源码,大大地减少了开发工作量。此外,因为所有的处理都在引用进程中完成而与系统进程无关,所以可以对应用方便地进行维护、扩展、移植,而不会对系统造成影响。
[0066]下面,参考图3描述根据本发明实施例的电子设备200。
[0067]根据本发明实施例的电子设备200包括:
[0068]接收单元201,用于用户的指令;
[0069]多媒体播放应用单元202,用于在接收播放多媒体文件的指令时,启动多媒体播放应用;
[0070]解码单元203,用于通过所述多媒体播放应用中底层的多媒体播放引擎模块解码多媒体文件,获得解码后的多媒体数据;
[0071]数据处理单元204,接收从所述解码单元直接提供的解码后的多媒体数据,以生成与所述多媒体文件对应的图像信号和/或音频信号;
[0072]输出单元205,用于输出所述图像信号和/或音频信号。
[0073]接收单元201例如包括键盘、鼠标、触摸屏等等输入设备。可以根据用户的操作,选择相应的多媒体文件、应用等等。
[0074]多媒体播放应用单元202根据用户的操作,启动多媒体播放应用。
[0075]解码单元203调用多媒体播放引擎模块解码多媒体文件,获得解码后的多媒体数据。
[0076]数据处理单元204接收从所述解码单元203直接提供的解码后的多媒体数据,以生成与所述多媒体文件对应的图像信号和/或音频信号。此外,还可以对解码后的多媒体数据进行各种数据处理,如滤波、图像质量调整、拖动等等。
[0077]输出单元205例如包括显示器和扬声器等等,用于输出所述图像信号和/或音频信号。
[0078]优选地,所述数据处理单元204通过以下方式形成:
[0079]提取基于第一操作系统的多媒体播放框架的源码;
[0080]解析所述源码,以确定多媒体播放框架的应用进程中的第一功能层模块和系统进程中的第二功能层模块,所述第一功能层模块用于接收输入数据和与系统进程进行通信,所述第二功能层模块用于启动第一操作系统的不同多媒体引擎来解码多媒体文件和与应用进程进行通信;
[0081]优化所述第一功能层模块和所述第二功能层模块,以去除所述第一功能层模块和所述第二功能层模块中用于进程之间的通信的功能;以及
[0082]合并优化后的第一功能层模块和第二功能层模块以生成所述数据处理单元。
[0083]优选地,所述数据处理单元204具有与所述第一功能层模块相同的接收接口,用于以与所述第一功能层相同的工作方式接收输入数据。
[0084]优选地,所述数据处理单元204具有与所述第二功能层模块相同的启动接口,用于启动第一操作系统的不同多媒体引擎。
[0085]优选地,所述数据处理单元204通过所述启动接口,利用所述第一操作系统的多媒体引擎对多媒体文件进行硬解码。
[0086]优选地,除了与所述第二功能层模块相同的启动接口之外,所述数据处理单元204还具有另外的启动接口,用于启动另外的自定义多媒体引擎。
[0087]因此,根据本发明实施例的电子设备,通过消除应用进程和系统进程之间的进程间通信,能够大大地减少系统进程的工作负荷,并且提高多媒体文件的处理速度,此外,通过复用Android多媒体播放框架的源码,大大地减少了开发工作量。此外,因为所有的处理都在引用进程中完成而与系统进程无关,所以可以对应用方便地进行维护、扩展、移植,而不会对系统造成影响。
[0088]需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0089]最后,还需要说明的是,上述一系列处理不仅包括以这里所述的顺序按时间序列执行的处理,而且包括并行或分别地、而不是按时间顺序执行的处理。
[0090]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对【背景技术】做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0091]以上对本发明进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【权利要求】
1.一种多媒体文件处理方法,包括: 在接收播放多媒体文件的指令时,启动多媒体播放应用; 通过所述多媒体播放应用中底层的多媒体播放引擎模块解码多媒体文件,获得解码后的多媒体数据; 将解码后的多媒体数据直接提供给所述多媒体播放应用中上层的数据处理层模块,以生成与所述多媒体文件对应的图像信号和/或音频信号;以及 输出所述图像信号和/或音频信号。
2.如权利要求1所述的方法,其中将解码后的多媒体数据直接提供给所述多媒体播放应用中上层的数据处理层模块包括: 提取基于第一操作系统的多媒体播放框架的源码; 解析所述源码,以确定多媒体播放框架的应用进程中的第一功能层模块和系统进程中的第二功能层模块,所述第一功能层模块用于接收输入数据和与系统进程进行通信,所述第二功能层模块用于启动第一操作系统的不同多媒体引擎来解码多媒体文件和与应用进程进行通信; 优化所述第一功能层模块和所述第二功能层模块,以去除所述第一功能层模块和所述第二功能层模块中用于进程之间的通信的功能;以及 合并优化后的第一功能层模块和第二功能层模块以生成所述数据处理层模块。
3.如权利要求2所述的方法,其中所述数据处理层模块具有与所述第一功能层模块相同的接收接口,用于以与所述第一功能层相同的工作方式接收输入数据。
4.如权利要求2所述的方法,其中所述数据处理层模块具有与所述第二功能层模块相同的启动接口,用于启动第一操作系统的不同多媒体引擎。
5.如权利要求4所述的方法,其中所述数据处理层通过所述启动接口,利用所述第一操作系统的多媒体引擎对多媒体文件进行硬解码。
6.如权利要求4所述的方法,其中除了与所述第二功能层模块相同的启动接口之外,所述数据处理层模块还具有另外的启动接口,用于启动另外的自定义多媒体引擎。
7.—种电子设备,包括: 接收单元,用于用户的指令; 多媒体播放应用单元,用于在接收播放多媒体文件时,启动多媒体播放应用; 解码单元,用于通过所述多媒体播放应用中底层的多媒体播放引擎模块解码多媒体文件,获得解码后的多媒体数据; 数据处理单元,接收从所述解码单元直接提供的解码后的多媒体数据,以生成与所述多媒体文件对应的图像信号和/或音频信号; 输出单元,用于输出所述图像信号和/或音频信号。
8.如权利要求7所述的电子设备,其中所述数据处理单元通过以下方式形成: 提取基于第一操作系统的多媒体播放框架的源码; 解析所述源码,以确定多媒体播放框架的应用进程中的第一功能层模块和系统进程中的第二功能层模块,所述第一功能层模块用于接收输入数据和与系统进程进行通信,所述第二功能层模块用于启动第一操作系统的不同多媒体引擎来解码多媒体文件和与应用进程进行通信;优化所述第一功能层模块和所述第二功能层模块,以去除所述第一功能层模块和所述第二功能层模块中用于进程之间的通信的功能;以及 合并优化后的第一功能层模块和第二功能层模块以生成所述数据处理单元。
9.如权利要求8所述的方法,其中所述数据处理单元具有与所述第一功能层模块相同的接收接口,用于以与所述第一功能层相同的工作方式接收输入数据。
10.如权利要求8所述的方法,其中所述数据处理单元具有与所述第二功能层模块相同的启动接口,用于启动第一操作系统的不同多媒体引擎。
11.如权利要求8所述的方法,其中所述数据处理层通过所述启动接口,利用所述第一操作系统的多媒体引擎对多媒体文件进行硬解码。
12.如权利要求8所述的方法,其中除了与所述第二功能层模块相同的启动接口之外,所述数据处理单元 还具有另外的启动接口,用于启动另外的自定义多媒体引擎。
【文档编号】G06F9/46GK104050021SQ201310084500
【公开日】2014年9月17日 申请日期:2013年3月15日 优先权日:2013年3月15日
【发明者】卓建凡 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1