首页> 中国专利> 在多媒体文件控制过程中实现快速响应的方法及播放装置

在多媒体文件控制过程中实现快速响应的方法及播放装置

摘要

本发明提供了一种在多媒体文件控制过程中实现快速响应的方法及播放装置,此播放装置包括逻辑控制模块和媒体文件解析模块;逻辑控制模块用于在打开多媒体文件的同时采用并行方式控制媒体文件解析模块创建多媒体文件播放时间索引;媒体文件解析模块用于根据所述逻辑控制模块的控制创建多媒体文件播放时间索引。与现有技术中串行方式相比,本发明采用并行处理的方式,在不影响打开文件或重定位文件的操作进程的前提下,完成多媒体文件播放时间索引的创建,实现快速打开和重定位多媒体文件,尤其处理器能力较低的手机和便携式媒体播放器等终端设备,可以对用户的打开文件或重定位多媒体文件操作做出快速响应。

著录项

  • 公开/公告号CN101819807A

    专利类型发明专利

  • 公开/公告日2010-09-01

    原文格式PDF

  • 申请/专利权人 中兴通讯股份有限公司;

    申请/专利号CN201010174119.2

  • 发明设计人 陈有鑫;马伟;

    申请日2010-05-13

  • 分类号G11B27/10(20060101);

  • 代理机构11262 北京安信方达知识产权代理有限公司;

  • 代理人李健;龙洪

  • 地址 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法务部

  • 入库时间 2023-12-18 00:39:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-04-26

    未缴年费专利权终止 IPC(主分类):G11B27/10 专利号:ZL2010101741192 申请日:20100513 授权公告日:20140611

    专利权的终止

  • 2014-06-11

    授权

    授权

  • 2012-02-22

    实质审查的生效 IPC(主分类):G11B27/10 申请日:20100513

    实质审查的生效

  • 2010-09-01

    公开

    公开

说明书

技术领域

本发明涉及多媒体数据处理技术,更具体地说,涉及在多媒体文件控制过程中实现快速响应的方法及播放装置。

背景技术

随着电子技术与软件技术的发展,多媒体信息技术已经深入到日常生活的各个方面,与此同时,用户对多媒体信息的体验要求也日益提高。多媒体播放设备逐渐从大型走向小型,从家用型走向便携型,MP3、MP4、手机等小型多媒体播放设备很大程度上取代了传统的家用大型多媒体设备。但是,便携式播放设备的计算能力和数据处理能力较为有限,在打开或重定位(即在文件播放过程中重新确定播放开始时间点)一些较大的多媒体文件(MP3、AAC等格式的文件)时,通常会出现响应较慢的情况,影响用户体验。

便携式播放设备的播放器为了支持用户对多媒体文件的重定位需求,需要对多媒体文件创建文件播放时间索引,此创建过程需要遍历整个多媒体文件的各帧数据,花费较长的时间。而影响多媒体文件打开或重定位速度的瓶颈即在于此文件播放时间索引的创建过程。目前广泛采用的有两种方案:一、打开文件后创建索引,索引创建完成后,继续播放此多媒体文件。此方法一中打开文件速度较慢,但在播放过程中重定位时较快;二、打开文件时暂不创建索引,在收到用户的重定位需求时再创建索引,此方法二中打开文件较快,但第一次重定位文件需要较长的时间。

发明内容

本发明要解决的技术问题是提供在多媒体文件控制过程中实现快速响应的方法及播放装置,实现快速打开和重定位多媒体文件,播放装置的响应速度,提高用户体验。

为了解决上技术问题,本发明提供了一种在多媒体文件控制过程中实现快速响应的方法,包括:播放装置在打开多媒体文件的同时以并行处理的方式创建多媒体文件播放时间索引。

进一步地,上述方法还可以具有以下特点:

所述播放装置打开多媒体文件的过程包括初始化的过程和启动多媒体文件播放的过程;所述播放装置在初始化的过程中或者在启动多媒体文件播放时,以并行处理的方式创建多媒体文件播放时间索引。

进一步地,上述方法还可以具有以下特点:

所述播放装置以多线程的方式实现所述并行处理,并通过以下方式中的一种创建多媒体文件播放时间索引:方式一,所述播放装置在初始化的过程中创建逻辑控制线程和索引创建线程,在初始化过程中,通过所述逻辑控制线程执行打开多媒体文件的初始化操作,同时通过所述索引创建线程创建多媒体文件播放时间索引;方式二,所述播放装置在初始化的过程中创建逻辑控制线程和索引创建线程,通过所述逻辑控制线程完成打开多媒体文件的初始化操作后,在启动多媒体文件播放操作时,触发所述索引创建线程创建多媒体文件播放时间索引。

进一步地,上述方法还可以具有以下特点:

所述播放装置在播放所述多媒体文件的过程中收到重定位指示后,在所述多媒体文件播放时间索引已创建完成时,根据所述多媒体文件播放时间索引执行重定位操作。

进一步地,上述方法还可以具有以下特点:

所述播放装置在打开多媒体文件的初始化过程中,在所述多媒体文件的时长范围内确定多个预设时间点;所述播放装置在播放所述多媒体文件过程中收到重定位指示后,在在所述多媒体文件播放时间索引未创建完成时,将与所述重定位指示中定位时刻最接近的预设时间点作为新确定的定位时刻,并执行重定位操作。

为了解决上技术问题,本发明还提供了在多媒体文件控制过程中实现快速响应的播放装置,包括逻辑控制模块和媒体文件解析模块;

所述逻辑控制模块,用于在打开多媒体文件的同时采用并行方式控制媒体文件解析模块创建多媒体文件播放时间索引;

所述媒体文件解析模块,用于根据所述逻辑控制模块的控制创建多媒体文件播放时间索引。

进一步地,上述播放装置还可以具有以下特点:

所述逻辑控制模块打开多媒体文件的过程包括初始化的过程和启动多媒体文件播放的过程;所述逻辑控制模块,还用于在初始化的过程中或者在启动多媒体文件播放时,控制媒体文件解析模块创建多媒体文件播放时间索引。

进一步地,上述播放装置还可以具有以下特点:

所述逻辑控制模块,还用于在初始化的过程中创建逻辑控制线程和索引创建线程,在初始化过程中,通过所述逻辑控制线程执行打开多媒体文件的初始化操作,同时指示所述媒体文件解析模块使用索引创建线程创建多媒体文件播放时间索引;所述媒体文件解析模块,还用于从所述逻辑控制模块获得索引创建线程的使用权,并根据所述逻辑控制模块的指示使用索引创建线程创建多媒体文件播放时间索引。

进一步地,上述播放装置还可以具有以下特点:

所述逻辑控制模块,还用于在初始化的过程中创建逻辑控制线程和索引创建线程,通过所述逻辑控制线程完成打开多媒体文件的初始化操作后,在启动多媒体文件播放操作时,指示所述媒体文件解析模块使用索引创建线程创建多媒体文件播放时间索引;所述媒体文件解析模块,还用于从所述逻辑控制模块获得索引创建线程的使用权,并根据所述逻辑控制模块的指示使用索引创建线程创建多媒体文件播放时间索引。

进一步地,上述播放装置还可以具有以下特点:

所述逻辑控制模块,还用于在播放所述多媒体文件的过程中收到重定位指示后,在所述多媒体文件播放时间索引已创建完成时,根据所述多媒体文件播放时间索引执行重定位操作。

进一步地,上述播放装置还可以具有以下特点:

所述逻辑控制模块,还用于在打开多媒体文件的初始化过程中,在所述多媒体文件的时长范围内确定多个预设时间点;在播放所述多媒体文件过程中收到重定位指示后,在在所述多媒体文件播放时间索引未创建完成时,将与所述重定位指示中定位时刻最接近的预设时间点作为新确定的定位时刻,并执行重定位操作。

现有技术中以串行方式创建多媒体文件播放时间索引,即创建多媒体文件播放时间索引的耗时过程直接影响打开文件或重定位文件的操作进程;与现有技术中串行方式相比,本发明采用并行处理的方式,在不影响打开文件或重定位文件的操作进程的前提下,完成多媒体文件播放时间索引的创建,可以解决现有方法打开文件或重定位文件时响应时间较长的缺陷,实现快速打开和重定位多媒体文件,尤其处理器能力较低的手机和便携式媒体播放器等终端设备,可以对用户的打开文件或重定位多媒体文件操作做出快速响应,对改善用户体验有重要的应用价值。

附图说明

图1是实施例中在多媒体文件控制过程中实现快速响应的播放装置的组成结构图;

图2是实施例中在多媒体文件控制过程中使用多线程的方式实现快速响应时线程的消息处理流程图;

图3是实施例中逻辑控制线程的消息处理流程图。

具体实施方式

如图1所示,在多媒体文件控制过程中实现快速响应的播放装置包括逻辑控制模块,与逻辑控制模块相连的媒体文件解析模块和多媒体解码模块、媒体输出模块。

逻辑控制模块用于在打开多媒体文件的同时采用并行方式控制媒体文件解析模块创建多媒体文件播放时间索引。媒体文件解析模块用于根据所述逻辑控制模块的控制创建多媒体文件播放时间索引。

逻辑控制模块是播放装置的核心控制模块,其打开多媒体文件的过程包括初始化的过程和启动多媒体文件播放的过程;逻辑控制模块用于在初始化的过程中或者在启动多媒体文件播放时,控制媒体文件解析模块创建多媒体文件播放时间索引。逻辑控制模块执行初始化的过程主要负责控制媒体文件解析模块对多媒体文件进行解析、动态加载解码库等初始化功能。

逻辑控制模块还控制多媒体解码模块对多媒体文件的数据进行解码,驱动媒体输出模块输出解码后的音频和/或视频数据,以及执行开始播放、暂停、恢复、重定位、停止播放等用户逻辑控制。

媒体文件解析模块是逻辑控制模块的功能支持模块,还用于在逻辑控制模块执行初始化过程中根据逻辑控制模块的指示对多媒体文件进行解析,包括对多媒体文件的格式、大小、时长、负载类型等信息的解析,并且在逻辑控制模块执行多媒体播放过程中将多媒体文件解析成一帧为单位的数据段。

多媒体解码模块是逻辑控制模块的另一功能支持模块,负责对多媒体文件的数据段进行音频和/或视频解码,解码出可供媒体输出模块输出的数据类型。

媒体输出模块负责根据逻辑控制模块的指示将解码后的多媒体音频和/或视频数据按照逻辑控制模块指定的速率播放。

本实施例中,逻辑控制模块使用多线程的方式实现并行处理。逻辑控制模块在初始化的过程中创建多媒体文件播放时间索引的具体实现方式包括:逻辑控制模块在初始化的过程中创建逻辑控制线程和索引创建线程,在初始化过程中,通过所述逻辑控制线程执行打开多媒体文件的初始化操作,同时指示所述媒体文件解析模块使用索引创建线程创建多媒体文件播放时间索引;媒体文件解析模块从所述逻辑控制模块获得索引创建线程的使用权,并根据所述逻辑控制模块的指示使用索引创建线程创建多媒体文件播放时间索引。

逻辑控制模块在启动多媒体文件播放时创建多媒体文件播放时间索引的具体实现方式包括:逻辑控制模块在初始化的过程中创建逻辑控制线程和索引创建线程,通过所述逻辑控制线程完成打开多媒体文件的初始化操作后,在启动多媒体文件播放操作时,指示所述媒体文件解析模块使用索引创建线程创建多媒体文件播放时间索引;媒体文件解析模块从所述逻辑控制模块获得索引创建线程的使用权,并根据所述逻辑控制模块的指示使用索引创建线程创建多媒体文件播放时间索引。

逻辑控制模块创建的逻辑控制线程为主控线程,以逻辑控制模块、文件解析模块和多媒体解库模块为基础,负责多媒体设备管理、文件解析、数据解码、多媒体数据输出等流程控制以及开始播放、暂停、恢复、重定位、停止播放等用户逻辑控制。索引创建线程是与逻辑控制线程并行的线程,由文件解析模块专用于索引创建。逻辑控制模块在初始化的过程中还创建媒体输出线程,媒体输出线程也是与逻辑控制线程并行的线程,媒体输出模块负责使用此媒体输出线程根据逻辑控制模块的指示将解码后的多媒体音频和/或视频数据按照逻辑控制模块指定的速率播放。上述三个并行线程可以共用一存储区,实现数据共享,例如索引创建线程将创建的索引数据存储于此存储区中,逻辑控制线程可以通过检查此存储区的数据判断索引是否创建完成。

在执行重定位过程中,逻辑控制模块在播放多媒体文件的过程中收到重定位指示后,在所述多媒体文件播放时间索引已创建完成时,根据所述多媒体文件播放时间索引执行重定位操作。

为了防止在执行重定位时多媒体文件播放时间索引还未创建完成而导致重定位失败的问题。逻辑控制模块在打开多媒体文件的初始化过程中,在所述多媒体文件的时长范围内确定多个预设时间点;在播放所述多媒体文件过程中收到重定位指示后,在在所述多媒体文件播放时间索引未创建完成时,将与所述重定位指示中定位时刻最接近的预设时间点作为新确定的定位时刻,并执行重定位操作。

本发明中播放装置可以是移动通信终端、便携式媒体播放器等设备。

对应于上述播放装置,在多媒体文件控制过程中实现快速响应的方法为:播放装置在打开多媒体文件的同时以并行处理的方式创建多媒体文件播放时间索引。

播放装置打开多媒体文件的过程包括初始化的过程和启动多媒体文件播放的过程;播放装置在初始化的过程中或者在启动多媒体文件播放时,以并行处理的方式创建多媒体文件播放时间索引。

实施例中,播放装置可以使用多种方式实现所述并行处理。例如使用播放装置中的后台创建多媒体文件播放时间索引;还可以使用多线程的方式实现所述并行处理,并通过以下方式中的一种创建多媒体文件播放时间索引:方式一,所述播放装置在初始化的过程中创建逻辑控制线程和索引创建线程,在初始化过程中,通过所述逻辑控制线程执行打开多媒体文件的初始化操作,同时通过所述索引创建线程创建多媒体文件播放时间索引;方式二,所述播放装置在初始化的过程中创建逻辑控制线程和索引创建线程,通过所述逻辑控制线程完成打开多媒体文件的初始化操作后,在启动多媒体文件播放操作时,触发所述索引创建线程创建多媒体文件播放时间索引。

本发明中上述并行方式创建多媒体播放时间索引的方式,不影响打开多媒体文件时的操作进程,提高多媒体文件的打开速度。另外,对于重定位操作的情况,播放装置在播放所述多媒体文件的过程中收到重定位指示后,在所述多媒体文件播放时间索引已创建完成时,根据所述多媒体文件播放时间索引执行重定位操作。此方案中可以直接查询已创建的多媒体播放时间索引,根据此索引直接执行重定位操作,提高装置的响应速度。

为了防止在执行重定位时多媒体文件播放时间索引还未创建完成而导致重定位失败的问题。播放装置在打开多媒体文件的初始化过程中,在所述多媒体文件的时长范围内确定多个预设时间点;播放装置在播放所述多媒体文件过程中收到重定位指示后,在在所述多媒体文件播放时间索引未创建完成时,将与所述重定位指示中定位时刻最接近的预设时间点作为新确定的定位时刻,并执行重定位操作。其中,可采用多种方式确定多个预设时间点时。可以根据多媒体文件的总时长将此总时长平均分成多个时间段,将每个时间段的起点作为预设时间点;还可以从多媒体文件时间的起点开始将具有固定时间间隔的时间点作为预设时间点,例如,预设时间点为30秒、60秒、90秒、120秒等等。

具体实施例一中,在多媒体文件控制过程中实现快速响应的方法包括以下步骤:

步骤1,用户选择多媒体文件,播放器将此多媒体文件作为操作目标;

步骤2,播放器创建逻辑控制线程,执行打开多媒体文件的初始化流程;

具体的,初始化流程中需打开一个文件通道,解析此文件的格式、类型、大小、时长等信息;初始化流程中还需执行动态加载解码库等常规操作中的初始化步骤,此处不再详细说明。

步骤3,在初始化流程中创建索引创建线程,启动此索引创建线程进行此多媒体文件播放时间索引的创建;索引创建线程与逻辑控制线程并行运行;

在其它实施方式中,还可以根据初始化过程中解析出的文件类型判断是否需要创建索引,即此多媒体文件是属于需要创建索引的文件时(例如MP3,AAC,AMR等类型的文件),才创建并启动索引创建线程,进行索引创建。

步骤4,根据解析出的文件的音频和/或视频类型,选择加载相应的音频和/或视频解码库,创建媒体输出线程;至此,初始化过程完成,进入逻辑控制线程消息循环;

步骤5,索引创建线程创建多媒体文件播放时间索引完成后,将索引数据存储于线程共享的存储区,逻辑控制线程关闭此索引创建线程;

步骤6,播放过程中,播放器收到重定位指示后,逻辑控制线程根据已完成的多媒体文件播放时间索引进行相应的重定位操作。

具体实施例二中,在多媒体文件控制过程中实现快速响应的方法包括以下步骤:

步骤1,用户选择多媒体文件,播放器将此多媒体文件作为操作目标;

步骤2,播放器创建逻辑控制线程,执行打开多媒体文件的初始化流程;

具体的,初始化流程中需打开一个文件通道,解析此文件的格式、类型、大小、时长等信息;初始化流程中还需执行动态加载解码库等常规操作中的初始化步骤,此处不再详细说明。

步骤3,根据解析出的文件的音频和/或视频类型,选择加载相应的音频和/或视频解码库,创建媒体输出线程;至此,初始化过程完成,进入逻辑控制线程消息循环;

步骤4,逻辑控制线程启动多媒体文件播放,同时创建并触发索引创建线程进行多媒体文件播放时间索引的创建;索引创建线程与逻辑控制线程并行运行;

在其它实施方式中,还可以根据初始化过程中解析出的文件类型判断是否需要创建索引,即此多媒体文件是属于需要创建索引的文件时(例如MP3,AAC,AMR等类型的文件),才创建并启动索引创建线程,进行索引创建。

步骤5,索引创建线程创建多媒体文件播放时间索引完成后,将索引数据存储于线程共享的存储区,逻辑控制线程关闭此索引创建线程;

步骤6,播放过程中,播放器收到重定位指示后,逻辑控制线程根据已完成的多媒体文件播放时间索引进行相应的重定位操作。

图2是在多媒体文件控制过程中使用多线程的方式实现快速响应时线程的消息处理流程图。其中包括以下过程:

过程1:初始化过程。

逻辑控制线程进行媒体文件初始化、打开多媒体设备、加载音视频解码库、创建媒体输出线程、创建索引线程创建等操作后进入消息循环。媒体输出线程完成初始化过程后,进入消息循环。索引创建线程中执行打开媒体文件、遍历文件进行索引创建、将索引数据设置到当前播放的文件通道、关闭文件、退出线程操作,这些操作与逻辑控制线程和媒体输出线程并行。

过程2:开始播放过程,此过程分为以下步骤:

(1).逻辑控制线程收到开始播放消息后为多媒体数据申请缓冲区;

(2).逻辑控制线程从多媒体文件中读取一段数据,进行音频或视频解码,而后将解码所得的数据输出到上述缓冲区,并向媒体输出线程发送媒体输出消息;

(3).媒体输出线程收到输出消息后将多媒体数据输出到多媒体设备进行播放,而后申请下一个数据缓冲区,并向逻辑控制线程发送媒体解码消息;

(4).逻辑控制线程收到解码消息后,转步骤(2),以此循环。

过程3:暂停播放过程。

逻辑控制线程执行暂停处理,并向媒体输出线程发送暂停消息,媒体输出线程收到暂停消息之后,暂停多媒体输出设备。

过程4:恢复播放过程。

逻辑控制线程执行恢复处理,并向媒体输出线程发送恢复消息,媒体输出线程收到恢复消息之后,恢复多媒体输出设备。

过程5:重定位过程。

在需要创建索引并且索引创建完毕的情况下,逻辑控制线程执行清空当前缓冲区,按照用户指定要求进行文件重定位,而后执行过程2所述的开始播放流程;在索引还没有创建结束的情况下,根据设置的预设时间点,将与所述重定位指示中定位时刻最接近的预设时间点作为新确定的定位时刻,并执行重定位操作,而后执行过程2所述的开始播放流程。

过程6:停止过程。

逻辑控制线程执行停止处理,并向媒体输出线程发送停止消息,媒体输出线程收到停止消息之后,停止多媒体设备,释放多媒体播放过程中所申请的资源;

过程7:关闭过程。

逻辑控制线程通知媒体输出线程退出消息循环,在创建索引且索引线程没有结束的情况下,等待索引创建线程退出,而后退出自身消息循环。

图3是实施例中逻辑控制线程的消息处理流程图。

步骤1,逻辑控制线程等待消息,对收到的消息类型进行判断。如果是开始(Start)消息,则转步骤2;如果是暂停(Pause)消息,则转步骤3;如果是恢复(Resume)消息,则转步骤4;如果是停止(Stop)消息,则转步骤5;如果是重定位(Seek)消息,则转步骤6;如果是解码(Decode)消息,则转步骤7;如果是关闭(Close)消息,则转步骤8;如果不是上述消息类型,则丢弃该消息,等待处理新的消息;

步骤2,逻辑控制线程申请媒体数据缓冲区,从多媒体文件中读取数据,而后将读出的数据解码输出到缓冲区,并通知媒体输出线程进行输出,转步骤1;

步骤3,逻辑控制线程进行暂停处理,并通知媒体输出线程暂停播放,转步骤1;

步骤4,逻辑控制线程进行恢复处理,并通知媒体输出线程恢复播放,转步骤1;

步骤5,逻辑控制线程进行停止处理,释放缓冲区,通知媒体输出线程停止播放,并将文件重定位到开始位置,转步骤1;

步骤6,逻辑控制线程判断当前索引创建是否完成,如果索引已经创建完毕,则清空缓冲区,将文件重定位到用户指定位置,而后转步骤2;如果索引没有创建完毕,将与重定位指示中定位时刻最接近的预设时间点作为新确定的定位时刻,并执行重定位操作,而后执行过程2所述的开始播放流程,转步骤1;

步骤7,逻辑控制线程从文件中读取一段媒体数据,将数据解码输出到缓冲区,并通知媒体输出线程进行输出,转步骤1;

步骤8,逻辑控制线程通知媒体输出线程结束播放,并等待其退出,如果索引创建线程没有结束,则置退出索引创建标志,等待索引创建线程退出。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号