陈有鑫 (中国广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦中兴通讯股份有限公司转交, Guangdong 7, 518057, CN)
中兴通讯股份有限公司 (中国广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦, Guangdong 7, 518057, CN)
CHEN, Youxin (ZTE Plaza Keji Road South, Hi-Tech Industrial Park, Nansha, Shenzhen Guangdong 7, 518057, CN)
| 权 利 要 求 书 1、 在多媒体文件控制过程中实现快速响应的方法, 该方法包括: 播放装置在打开多媒体文件的同时以并行处理的方式创建多媒体文件的 文件播放时间索引。 2、 如权利要求 1所述的方法, 其中, 所述播放装置打开多媒体文件的过程包括初始化的过程和启动多媒体文 件播放的过程; 播放装置在打开多媒体文件的同时以并行处理的方式创建多 媒体文件的文件播放时间索引的步骤包括: 所述播放装置在初始化的过程中 或者在启动多媒体文件播放时, 以并行处理的方式创建多媒体文件的文件播 放时间索引。 3、 如权利要求 2所述的方法, 其中, 所述播放装置以多线程的方式实现所述并行处理, 并通过以下方式中的 一种创建多媒体文件的文件播放时间索引: 方式一, 所述播放装置在初始化的过程中创建逻辑控制线程和索引创建 线程, 在初始化过程中, 通过所述逻辑控制线程执行打开多媒体文件的初始 化操作, 同时通过所述索引创建线程创建多媒体文件的文件播放时间索引; 方式二, 所述播放装置在初始化的过程中创建逻辑控制线程和索引创建 线程, 通过所述逻辑控制线程完成打开多媒体文件的初始化操作后, 在启动 多媒体文件播放操作时, 触发所述索弓 )创建线程创建多媒体文件的文件播放 时间索引。 4、 如权利要求 1、 2或 3所述的方法, 其还包括: 所述播放装置在播放所述多媒体文件的过程中收到重定位指示后, 在所 述多媒体文件的文件播放时间索引已创建完成时, 根据所述多媒体文件的文 件播放时间索引执行重定位操作。 5、 如权利要求 1、 2或 3所述的方法, 其还包括: 所述播放装置在打开多媒体文件的初始化过程中 , 在所述多媒体文件的 时长范围内确定多个预设时间点; 所述播放装置在播放所述多媒体文件过程 中收到重定位指示后,在所述多媒体文件的文件播放时间索引未创建完成时, 将与所述重定位指示中定位时刻最接近的预设时间点作为新确定的定位时 刻, 并执行重定位操作。 6、在多媒体文件控制过程中实现快速响应的播放装置,其包括逻辑控制 模块和媒体文件解析模块; 所述逻辑控制模块设置为: 在打开多媒体文件的同时釆用并行方式控制 媒体文件解析模块创建多媒体文件的文件播放时间索引; 所述媒体文件解析模块设置为: 根据所述逻辑控制模块的控制创建多媒 体文件的文件播放时间索引。 7、 如权利要求 6所述的播放装置, 其中, 所述逻辑控制模块打开多媒体文件的过程包括初始化的过程和启动多媒 体文件播放的过程; 所述逻辑控制模块是设置为在初始化的过程中或者在启动多媒体文件播 放时, 控制媒体文件解析模块创建多媒体文件的文件播放时间索引。 8、 如权利要求 7所述的播放装置, 其中, 所述逻辑控制模块是设置为按如下方式在初始化的过程中控制媒体文件 解析模块创建多媒体文件的文件播放时间索引: 在初始化的过程中创建逻辑 控制线程和索引创建线程, 在初始化过程中, 通过所述逻辑控制线程执行打 开多媒体文件的初始化操作, 同时指示所述媒体文件解析模块使用索引创建 线程创建多媒体文件的文件播放时间索引; 所述媒体文件解析模块是设置为按如下方式根据所述逻辑控制模块的控 制创建多媒体文件的文件播放时间索引: 从所述逻辑控制模块获得索引创建 线程的使用权, 并根据所述逻辑控制模块的指示使用索引创建线程创建多媒 体文件的文件播放时间索引。 9、 如权利要求 7所述的播放装置, 其中, 所述逻辑控制模块是设置为按如下方式在初始化的过程中控制媒体文件 解析模块创建多媒体文件的文件播放时间索引: 在初始化的过程中创建逻辑 控制线程和索引创建线程, 通过所述逻辑控制线程完成打开多媒体文件的初 始化操作后, 在启动多媒体文件播放操作时, 指示所述媒体文件解析模块使 用索引创建线程创建多媒体文件的文件播放时间索引; 所述媒体文件解析模块是设置为按如下方式根据所述逻辑控制模块的控 制创建多媒体文件的文件播放时间索引: 从所述逻辑控制模块获得索引创建 线程的使用权, 并根据所述逻辑控制模块的指示使用索引创建线程创建多媒 体文件的文件播放时间索引。 10、 如权利要求 6、 7、 8或 9所述的播放装置, 其中, 所述逻辑控制模块还设置为: 在播放所述多媒体文件的过程中收到重定 位指示后, 在所述多媒体文件的文件播放时间索引已创建完成时, 根据所述 多媒体文件的文件播放时间索弓 I执行重定位操作。 11、 如权利要求 6、 7、 8或 9所述的播放装置, 其中, 所述逻辑控制模块还设置为: 在打开多媒体文件的初始化过程中, 在所 述多媒体文件的时长范围内确定多个预设时间点; 在播放所述多媒体文件过 程中收到重定位指示后, 在所述多媒体文件播放时间索引未创建完成时, 将 与所述重定位指示中定位时刻最接近的预设时间点作为新确定的定位时刻, 并执行重定位操作。 |
技术领域 本发明涉及多媒体数据处理技术, 更具体地说, 涉及在多媒体文件控制 过程中实现快速响应的方法及播放装置。
背景技术
随着电子技术与软件技术的发展, 多媒体信息技术已经深入到日常生活 的各个方面, 与此同时, 用户对多媒体信息的体验要求也日益提高。 多媒体 播放设备逐渐从大型走向小型, 从家用型走向便携型, MP3、 MP4、 以及手 机等小型多媒体播放设备很大程度上取代了传 统的家用大型多媒体设备。 但 是, 便携式播放设备的计算能力和数据处理能力较 为有限, 在打开或重定位 (即在文件播放过程中重新确定播放开始时间 )一些较大的多媒体文件(如 MP3、 AAC等格式的文件)时, 通常会出现响应较慢的情况, 从而影响用户 体验。 便携式播放设备为了支持用户对多媒体文件的 重定位需求, 需要创建多 媒体文件的文件播放时间索引, 此创建过程需要遍历整个多媒体文件的各帧 数据, 花费较长的时间。 而影响多媒体文件打开或重定位速度的瓶颈即 在于 此文件播放时间索引的创建过程。 目前广泛釆用的有两种方案: 一、 打开文 件后创建文件播放时间索引, 文件播放时间索引创建完成后, 继续播放此多 媒体文件。 此方案一中打开文件速度较慢, 但在播放过程中重定位时较快; 二、 打开文件时暂不创建文件播放时间索引, 在收到用户的重定位需求时再 创建文件播放时间索引, 此方法二中打开文件较快, 但第一次重定位文件需 要较长的时间。
发明内容 本发明要解决的技术问题是提供在多媒体文件 控制过程中实现快速响应 的方法及播放装置, 实现快速打开和重定位多媒体文件, 播放装置的响应速 度, 提高用户体验。 为了解决上技术问题, 本发明提供了一种在多媒体文件控制过程中实 现 快速响应的方法, 该方法包括: 播放装置在打开多媒体文件的同时以并行处理 的方式创建多媒体文件的 文件播放时间索引。 所述播放装置打开多媒体文件的过程包括初始 化的过程和启动多媒体文 件播放的过程; 播放装置在打开多媒体文件的同时以并行处理 的方式创建多 媒体文件的文件播放时间索引的步骤包括: 所述播放装置在初始化的过程中 或者在启动多媒体文件播放时, 以并行处理的方式创建多媒体文件的文件播 放时间索引。 所述播放装置以多线程的方式实现所述并行处 理, 并通过以下方式中的 一种创建多媒体文件的文件播放时间索引: 方式一, 所述播放装置在初始化的过程中创建逻辑控制 线程和索引创建 线程, 在初始化过程中, 通过所述逻辑控制线程执行打开多媒体文件的 初始 化操作, 同时通过所述索弓 I创建线程创建多媒体文件的文件播放时间索 ; 方式二, 所述播放装置在初始化的过程中创建逻辑控制 线程和索引创建 线程, 通过所述逻辑控制线程完成打开多媒体文件的 初始化操作后, 在启动 多媒体文件播放操作时, 触发所述索弓 )创建线程创建多媒体文件的文件播放 时间索引。 所述的方法还包括: 所述播放装置在播放所述多媒体文件的过程中 收到重定位指示后, 在所 述多媒体文件的文件播放时间索引已创建完成 时, 根据所述多媒体文件的文 件播放时间索引执行重定位操作。 所述的方法还包括: 所述播放装置在打开多媒体文件的初始化过程 中, 在所述多媒体文件的 时长范围内确定多个预设时间点; 所述播放装置在播放所述多媒体文件过程 中收到重定位指示后,在所述多媒体文件的文 件播放时间索引未创建完成时, 将与所述重定位指示中定位时刻最接近的预设 时间点作为新确定的定位时 刻, 并执行重定位操作。 为了解决上技术问题, 本发明还提供了一种在多媒体文件控制过程中 实 现快速响应的播放装置, 其包括逻辑控制模块和媒体文件解析模块; 所述逻辑控制模块设置为: 在打开多媒体文件的同时釆用并行方式控制 媒体文件解析模块创建多媒体文件的文件播放 时间索引; 所述媒体文件解析模块设置为: 根据所述逻辑控制模块的控制创建多媒 体文件的文件播放时间索引。 所述逻辑控制模块打开多媒体文件的过程包括 初始化的过程和启动多媒 体文件播放的过程; 所述逻辑控制模块是设置为在初始化的过程中 或者在启动多媒体文件播 放时, 控制媒体文件解析模块创建多媒体文件的文件 播放时间索引。 所述逻辑控制模块是设置为按如下方式在初始 化的过程中控制媒体文件 解析模块创建多媒体文件的文件播放时间索引 : 在初始化的过程中创建逻辑 控制线程和索引创建线程, 在初始化过程中, 通过所述逻辑控制线程执行打 开多媒体文件的初始化操作, 同时指示所述媒体文件解析模块使用索引创建 线程创建多媒体文件的文件播放时间索引; 所述媒体文件解析模块是设置为按如下方式根 据所述逻辑控制模块的控 制创建多媒体文件的文件播放时间索引: 从所述逻辑控制模块获得索引创建 线程的使用权, 并根据所述逻辑控制模块的指示使用索引创建 线程创建多媒 体文件的文件播放时间索引。 所述逻辑控制模块是设置为按如下方式在初始 化的过程中控制媒体文件 解析模块创建多媒体文件的文件播放时间索引 : 在初始化的过程中创建逻辑 控制线程和索引创建线程, 通过所述逻辑控制线程完成打开多媒体文件的 初 始化操作后, 在启动多媒体文件播放操作时, 指示所述媒体文件解析模块使 用索引创建线程创建多媒体文件的文件播放时 间索引; 所述媒体文件解析模块是设置为按如下方式根 据所述逻辑控制模块的控 制创建多媒体文件的文件播放时间索引: 从所述逻辑控制模块获得索引创建 线程的使用权, 并根据所述逻辑控制模块的指示使用索引创建 线程创建多媒 体文件的文件播放时间索引。 所述逻辑控制模块还设置为: 在播放所述多媒体文件的过程中收到重定 位指示后, 在所述多媒体文件的文件播放时间索引已创建 完成时, 根据所述 多媒体文件的文件播放时间索弓 I执行重定位操作。 所述逻辑控制模块还设置为: 在打开多媒体文件的初始化过程中, 在所 述多媒体文件的时长范围内确定多个预设时间 点; 在播放所述多媒体文件过 程中收到重定位指示后, 在所述多媒体文件播放时间索引未创建完成时 , 将 与所述重定位指示中定位时刻最接近的预设时 间点作为新确定的定位时刻, 并执行重定位操作。
现有技术中以串行方式创建多媒体文件播放 时间索引, 即创建多媒体文 件播放时间索引的耗时过程直接影响打开文件 或重定位文件的操作进程; 与 现有技术中串行方式相比, 本发明釆用并行处理的方式, 在不影响打开文件 或重定位文件的操作进程的前提下, 完成多媒体文件播放时间索引的创建, 可以解决现有方法打开文件或重定位文件时响 应时间较长的缺陷, 实现快速 打开和重定位多媒体文件, 尤其处理器能力较低的手机和便携式媒体播放 器 等终端设备,可以对用户的打开文件或重定位 多媒体文件操作做出快速响应, 对改善用户体验有重要的应用价值。
附图概述 图 1是实施例中在多媒体文件控制过程中实现快 响应的播放装置的组 成结构图; 图 2是实施例中在多媒体文件控制过程中使用多 程的方式实现快速响 应时线程的消息处理流程图; 图 3是实施例中逻辑控制线程的消息处理流程图 本发明的较佳实施方式 下文中将结合附图对本发明的实施例进行详细 说明。 需要说明的是, 在 不冲突的情况下, 本申请中的实施例及实施例中的特征可以相互 任意组合。 如图 1所示, 在多媒体文件控制过程中实现快速响应的播放 装置包括逻 辑控制模块, 与逻辑控制模块相连的媒体文件解析模块、 多媒体解码模块、 和媒体输出模块。 逻辑控制模块设置为: 在打开多媒体文件的同时釆用并行方式控制媒 体 文件解析模块创建多媒体文件的文件播放时间 索引。 媒体文件解析模块设置 为: 根据所述逻辑控制模块的控制创建多媒体文件 的文件播放时间索引。
逻辑控制模块是播放装置的核心控制模块, 其打开多媒体文件的过程包 括初始化的过程和启动多媒体文件播放的过程 ; 逻辑控制模块设置为: 在初 始化的过程中或者在启动多媒体文件播放时, 控制媒体文件解析模块创建多 媒体文件的文件播放时间索引。 逻辑控制模块执行初始化的过程主要负责控 制媒体文件解析模块对多媒体文件进行解析、 动态加载解码库等初始化功能。
逻辑控制模块还设置为: 控制多媒体解码模块对多媒体文件的数据进行 解码, 驱动媒体输出模块输出解码后的音频和 /或视频数据, 以及执行开始播 放、 暂停、 恢复、 重定位、 及停止播放等用户逻辑控制。 媒体文件解析模块是逻辑控制模块的功能支持 模块, 媒体文件解析模块 还设置为: 在逻辑控制模块执行初始化过程中根据逻辑控 制模块的指示对多 媒体文件进行解析, 包括对多媒体文件的格式、 大小、 时长、 以及负载类型 等信息的解析, 并且在逻辑控制模块执行多媒体播放过程中将 多媒体文件解 析成一帧为单位的数据段。
多媒体解码模块是逻辑控制模块的另一功能支 持模块, 多媒体解码模块 负责对多媒体文件的数据段进行音频和 /或视频解码,解码出可供媒体输出模 块输出的数据类型。 媒体输出模块负责根据逻辑控制模块的指示将 解码后的多媒体音频和 / 或视频数据按照逻辑控制模块指定的速率播放 。 本实施例中, 逻辑控制模块使用多线程的方式实现并行处理 。 逻辑控制 模块在初始化的过程中创建多媒体文件的文件 播放时间索引的具体实现方式 包括: 逻辑控制模块在初始化的过程中创建逻辑控制 线程和索引创建线程, 在初始化过程中,通过所述逻辑控制线程执行 打开多媒体文件的初始化操作, 同时指示所述媒体文件解析模块使用索引创建 线程创建多媒体文件的文件播 放时间索引; 媒体文件解析模块从所述逻辑控制模块获得索 引创建线程的使 用权, 并根据所述逻辑控制模块的指示使用索引创建 线程创建多媒体文件的 文件播放时间索引。
逻辑控制模块在启动多媒体文件播放时创建多 媒体文件播放时间索引的 具体实现方式包括: 逻辑控制模块在初始化的过程中创建逻辑控制 线程和索 引创建线程, 通过所述逻辑控制线程完成打开多媒体文件的 初始化操作后, 在启动多媒体文件播放操作时, 指示所述媒体文件解析模块使用索引创建线 程创建多媒体文件播放时间索引; 媒体文件解析模块从所述逻辑控制模块获 得索引创建线程的使用权, 并根据所述逻辑控制模块的指示使用索引创建 线 程创建多媒体文件播放时间索引。
逻辑控制模块创建的逻辑控制线程为主控线程 , 以逻辑控制模块、 文件 解析模块和多媒体解库模块为基础, 负责多媒体设备管理、 文件解析、 数据 解码、 及多媒体数据输出等流程控制以及开始播放、 暂停、 恢复、 重定位、 以及停止播放等用户逻辑控制。索引创建线程 是与逻辑控制线程并行的线程, 由文件解析模块专用于创建文件播放时间索引 。 逻辑控制模块在初始化的过 程中还创建媒体输出线程, 媒体输出线程也是与逻辑控制线程并行的线程 , 媒体输出模块负责使用此媒体输出线程根据逻 辑控制模块的指示将解码后的 多媒体音频和 /或视频数据按照逻辑控制模块指定的速率播 。上述三个并行 线程可以共用一存储区, 实现数据共享, 例如索引创建线程将创建的文件播 放时间索引存储于此存储区中, 逻辑控制线程可以通过检查此存储区的数据 判断索引是否创建完成。 在执行重定位过程中, 逻辑控制模块在播放多媒体文件的过程中收到 重 定位指示后, 在所述多媒体文件的文件播放时间索引已创建 完成时, 才艮据所 述多媒体文件的文件播放时间索 I执行重定位操作。 为了防止在执行重定位时多媒体文件的文件播 放时间索引还未创建完成 而导致重定位失败的问题。逻辑控制模块在打 开多媒体文件的初始化过程中, 在所述多媒体文件的时长范围内确定多个预设 时间点; 在播放所述多媒体文 件过程中收到重定位指示后, 在在所述多媒体文件的文件播放时间索弓 )未创 建完成时, 将与所述重定位指示中定位时刻最接近的预设 时间点作为新确定 的定位时刻, 并执行重定位操作。 本发明中播放装置可以是移动通信终端、 便携式媒体播放器等设备。
对应于上述播放装置,在多媒体文件控制过 程中实现快速响应的方法为: 播放装置在打开多媒体文件的同时以并行处理 的方式创建多媒体文件播放时 间索引。 播放装置打开多媒体文件的过程包括初始化的 过程和启动多媒体文件播 放的过程; 播放装置在初始化的过程中或者在启动多媒体 文件播放时, 以并 行处理的方式创建多媒体文件的文件播放时间 索引。 实施例中, 播放装置可以使用多种方式实现所述并行处理 。 例如使用播 放装置中的后台创建多媒体文件的文件播放时 间索引; 还可以使用多线程的 方式实现所述并行处理, 并通过以下方式中的一种创建多媒体文件的文 件播 放时间索引: 方式一, 所述播放装置在初始化的过程中创建逻辑控制 线程和 索引创建线程, 在初始化过程中, 通过所述逻辑控制线程执行打开多媒体文 件的初始化操作, 同时通过所述索弓 I创建线程创建多媒体文件的文件播放时 间索引; 方式二, 所述播放装置在初始化的过程中创建逻辑控制 线程和索引 创建线程, 通过所述逻辑控制线程完成打开多媒体文件的 初始化操作后, 在 启动多媒体文件播放操作时, 触发所述索引创建线程创建多媒体文件的文件 播放时间索引。 本发明中上述并行方式创建文件播放时间索引 的方式, 不影响打开多媒 体文件时的操作进程, 提高多媒体文件的打开速度。 另外, 对于重定位操作 的情况, 播放装置在播放所述多媒体文件的过程中收到 重定位指示后, 在所 述多媒体文件的文件播放时间索引已创建完成 时, 根据所述多媒体文件播放 时间索引执行重定位操作。 此方案中可以直接查询已创建的多媒体播放时 间 索引, 根据此索引直接执行重定位操作, 提高装置的响应速度。 为了防止在执行重定位时多媒体文件的文件播 放时间索引还未创建完成 而导致重定位失败的问题。 播放装置在打开多媒体文件的初始化过程中, 在 所述多媒体文件的时长范围内确定多个预设时 间点; 播放装置在播放所述多 媒体文件过程中收到重定位指示后, 在在所述文件播放时间索引未创建完成 时, 将与所述重定位指示中定位时刻最接近的预设 时间点作为新确定的定位 时刻, 并执行重定位操作。 其中, 可釆用多种方式确定多个预设时间点时。 可以根据多媒体文件的总时长将此总时长平均 分成多个时间段, 将每个时间 段的起点作为预设时间点; 还可以从多媒体文件时间的起点开始将具有固 定 时间间隔的时间点作为预设时间点, 例如, 预设时间点为 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, 逻辑控制线程通知媒体输出线程结束播放, 并等待其退出, 如 果索引创建线程没有结束,则置退出索引创建 标志,等待索引创建线程退出。
本领域普通技术人员可以理解上述方法中的 全部或部分步骤可通过程序 来指令相关硬件完成, 所述程序可以存储于计算机可读存储介质中, 如只读 存储器、 磁盘或光盘等。 可选地, 上述实施例的全部或部分步骤也可以使用 一个或多个集成电路来实现。 相应地, 上述实施例中的各模块 /单元可以釆用 硬件的形式实现, 也可以釆用软件功能模块的形式实现。 本发明不限制于任 何特定形式的硬件和软件的结合。 以上所述, 仅为本发明的较佳实施例而已, 并非用于限定本发明的保护 范围, 凡在本发明的精神和原则之内所作的任何修改 、 等同替换和改进等, 均应包含在本发明的保护范围之内。
工业实用性 本发明釆用并行处理的方式, 在不影响打开文件或重定位文件的操作进 程的前提下, 完成多媒体文件播放时间索引的创建, 可以解决现有方法打开 文件或重定位文件时响应时间较长的缺陷, 实现快速打开和重定位多媒体文 件, 尤其处理器能力较低的手机和便携式媒体播放 器等终端设备, 可以对用 户的打开文件或重定位多媒体文件操作做出快 速响应, 对改善用户体验有重 要的应用价值。
