一种多媒体文件播放方法及装置与流程

文档序号:15233229发布日期:2018-08-21 19:57阅读:148来源:国知局

本申请涉及计算机技术领域,尤其涉及一种多媒体文件播放方法及装置。



背景技术:

随着音视频技术的不断发展,人们在日常生活中越来越多的通过音频或视频来获取自己所需的信息。

目前,人们通常使用移动终端观看本地存储的音频或视频来获取自己所需的信息。

在通过移动终端播放存储在终端内的音频的过程中,通常都是将播放的音频文件直接用音频解码器解码出声音,通过扬声器对外输出,而在播放视频的过程中,通常先将视频文件进行纯音频与纯视频数据的分离,再将音频数据直接用音频解码器解码出声音,将视频数据直接用视频解码器解码出视频画面,并分别通过扬声器和显示器等输出。

但是,在现有技术中,由于移动终端只能同时播放一个视频文件,因此,用户想要连续观看本地存储的多个视频的不同片段时,只能按照视频播放顺序,打开视频文件观看视频中相应的片段,这样会给用户带来很大的不便利。



技术实现要素:

本申请实施例提供一种多媒体文件播放方法及装置,用以解决现有技术中用户想要连续播放本地存储的多个视频的不同片段所带来的不便利的问题。

本申请实施例提供一种多媒体文件播放方法,包括:

根据当前的播放时间点,在预先创建的轨道对象中确定片段对象,其中,所述片段对象包含有片段对象在轨道对象的时间线上的起始时间点、多媒体文件的标识、多媒体文件的播放起始时间点以及多媒体文件的播放时长;

根据所述片段对象中包含的多媒体文件的标识,确定多媒体文件;

根据所述片段对象在轨道对象的时间线上的起始时间点、所述当前的播放时间点、所述多媒体文件的播放起始时间点以及所述多媒体文件的播放时长,播放确定出的多媒体文件。

优选地,在预先创建的轨道对象中确定片段对象之前,获取多媒体文件,创建节目对象,根据获取到的多媒体文件的类型,创建所述节目对象对应的轨道对象,根据获取到的每个多媒体文件,创建该多媒体文件的片段对象,根据所创建的片段对象位于轨道对象的时间线上的起始时间点将所创建的片段对象添加到对应的轨道对象。

优选地,在预先创建的轨道对象中,根据所述片段对象位于轨道对象的时间线上的起始时间点以及所述播放时长确定所述片段对象所在的时间区间,根据当前的播放时间点,确定包含当前的播放时间点的时间区间所对应的片段对象。

优选地,根据所述片段对象在轨道对象的时间线上的起始时间点、所述当前的播放时间点以及所述多媒体文件的播放时长,确定所述多媒体文件的待播放时长,根据确定出的所述多媒体文件的待播放时长、所述多媒体文件的播放起始时间点以及所述多媒体文件的播放时长,确定所述多媒体文件的待播放多媒体文件片段,播放所述多媒体文件片段。

优选地,对所述多媒体文件片段进行解码,对解码后的多媒体文件片段对应的数据进行同步,播放同步后的多媒体文件片段对应的数据。

优选地,所述多媒体文件包括视频多媒体文件、背景音乐多媒体文件以及配音多媒体文件中的至少一个。

优选地,该方法还包括:根据所述片段对象在轨道对象的时间线上的起始时间点、所述多媒体文件的播放起始时间点以及所述多媒体文件的播放时长,合成所述视频多媒体文件、背景音乐多媒体文件以及配音多媒体文件中的至少一个。

本申请实施例提供一种多媒体文件播放装置,包括:

片段对象确定模块,用于根据当前的播放时间点,在预先创建的轨道对象中确定片段对象,其中,所述片段对象包含有片段对象在轨道对象的时间线上的起始时间点、多媒体文件的标识、多媒体文件的播放起始时间点以及多媒体文件的播放时长;

多媒体文件确定模块,用于根据所述片段对象中包含的多媒体文件的标识,确定多媒体文件;

播放模块,用于根据所述片段对象在轨道对象的时间线上的起始时间点、所述当前的播放时间点、所述多媒体文件的播放起始时间点以及所述多媒体文件的播放时长,播放确定出的多媒体文件。

优选地,所述装置还包括:创建模块,用于所述片段对象确定模块在预先创建的轨道对象中确定片段对象之前,获取多媒体文件,创建节目对象,根据获取到的多媒体文件的类型,创建所述节目对象对应的轨道对象,根据获取到的每个多媒体文件,创建该多媒体文件的片段对象,根据所创建的片段对象位于轨道对象的时间线上的起始时间点将所创建的片段对象添加到对应的轨道对象。

优选地,所述片段对象确定模块具体用于,在预先创建的轨道对象中,根据所述片段对象位于轨道对象的时间线上的起始时间点以及所述播放时长确定所述片段对象所在的时间区间,根据当前的播放时间点,确定包含当前的播放时间点的时间区间所对应的片段对象。

优选地,所述播放模块具体用于,根据所述片段对象在轨道对象的时间线上的起始时间点、所述当前的播放时间点以及所述多媒体文件的播放时长,确定所述多媒体文件的待播放时长,根据确定出的所述多媒体文件的待播放时长、所述多媒体文件的播放起始时间点以及所述多媒体文件的播放时长,确定所述多媒体文件的待播放多媒体文件片段,播放所述多媒体文件片段。

优选地,所述播放模块还用于,对所述多媒体文件片段进行解码,对解码后的多媒体文件片段对应的数据进行同步,播放同步后的多媒体文件片段对应的数据。

优选地,所述多媒体文件包括视频多媒体文件、背景音乐多媒体文件以及配音多媒体文件中的至少一个。

优选地,该装置还包括:合成模块,用于根据所述片段对象在轨道对象的时间线上的起始时间点、所述多媒体文件的播放起始时间点以及所述多媒体文件的播放时长,合成所述视频多媒体文件、背景音乐多媒体文件以及配音多媒体文件中的至少一个。

本申请实施例提供一种多媒体文件播放方法及装置,该方法包括:根据当前的播放时间点,在预先创建的轨道对象中确定片段对象,其中,该片段对象包含有片段对象在轨道对象的时间线上的起始时间点、多媒体文件的标识、多媒体文件的播放起始时间点以及多媒体文件的播放时长,根据所述片段对象中包含的多媒体文件的标识,确定多媒体文件,根据该片段对象在轨道对象的时间线上的起始时间点、所述当前的播放时间点、所述多媒体文件的播放起始时间点以及所述多媒体文件的播放时长,播放确定出的多媒体文件。通过上述方法,通过创建需要播放的且携带有片段对象在轨道对象的时间线上的起始时间点、多媒体文件的标识、多媒体文件的播放起始时间点以及多媒体文件的播放时长的多媒体文件的片段对象,可以简单有效的实现任意指定多个多媒体文件中的片段的拼接播放,提高了用户想要连续播放本地存储的多个多媒体文件的不同片段时的便利性。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本申请实施例提供的一种多媒体文件播放的过程示意图;

图2为本申请实施例提供的一种轨道对象创建的示意图;

图3为本申请实施例提供的一种多媒体文件a的示意图;

图4为本申请实施例提供的第一种添加有片段对象的轨道对象的示意图;

图5为本申请实施例提供的第二种添加有片段对象的轨道对象的示意图;

图6为本申请实施例提供的第三种添加有片段对象的轨道对象的示意图;

图7为本申请实施例提供的第四种添加有片段对象的轨道对象的示意图;

图8为本申请实施例提供的一种多媒体文件播放的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

图1为本申请实施例提供的多媒体文件播放过程,具体包括以下步骤:

s101:根据当前的播放时间点,在预先创建的轨道对象中确定片段对象。

由于在实际应用中,用户有可能想要连续播放本地存储的至少两个多媒体文件(如,音频文件或视频文件)的不同片段,在本申请中,首先需要将用户想要播放的多媒体文件按照播放顺序进行前后拼接。

进一步地,为了方便管理和添加待拼接的多媒体文件,在本申请中,在将用户想要播放的多媒体文件按照播放顺序进行前后拼接的过程中,首先需要创建多个不同类型的轨道对象,用于管理和添加多媒体文件。

进一步地,由于多媒体文件是有不同类型的,如,视频文件,音频文件等,而不同类型的多媒体文件的构成也是有差别的,也可以说,多媒体文件的类型决定了多媒体文件的构成,如,对于视频文件而言,是由视频画面以及视频原音构成的,而对于音频文件,只是由音频原音构成的,因此,在本申请中,创建多个不同类型的轨道对象具体可以为:如果多媒体文件的构成包括视频画面以及视频原音,则针对视频画面创建视频画面轨道对象,用于管理和添加多媒体文件的视频画面,且针对视频原音创建视频原音轨道对象,用于管理和添加多媒体文件的视频原音,如图2所示,其中,轨道对象指的是存在于一个节目中的一条或多条数据流,并且轨道对象的数量可以为一个或多个,轨道对象的数量和类型取决于多媒体文件的构成或多媒体文件的类型。

另外,轨道对象是包含有时间线这一属性的,所述时间线指的是从零时刻开始到某一时间点结束的时间区间,时间线能够表示多媒体数据在每一时刻的运行情况,即,播放什么画面什么声音,如,若将视频文件添加到时间线上,则时间线上的每一时刻均对应视频文件中特定画面以及特定声音。

进一步地,在本申请中,可以创建节目对象,该节目对象用于管理所创建的轨道对象,其中,所述节目对象指的是可编辑的多媒体文件的对象,一个节目对象中可以有多条轨道对象。

进一步地,由于多媒体文件通常都是容量很大的,而将多媒体文件直接添加到轨道对象中会增加轨道对象的容量,因此,在本申请中,可针对获取到的每个多媒体文件,创建该多媒体文件的片段对象,使用片段对象来定位多媒体文件,并且所创建的片段对象中保存有多媒体文件的标识(如,多媒体文件的存储地址)。如果多媒体文件是视频文件,则创建视频文件的视频片段,如果多媒体文件是配音文件,则创建配音文件的配音片段,其中,所述片段对象指的是一条轨道上的一个或者多个素材文件资源的对象,片段对象可以是视频对象,可以是音频对象,甚至可以是用参数定义的对象等。

进一步地,在本申请中,所创建的片段对象还保存有多媒体文件的播放起始点(也就是说,希望从多媒体文件中哪个时间点开始播放多媒体文件)以及多媒体文件的播放时长(希望播放多长时间),如,多媒体文件a的总时长为30秒,需要播放多媒体文件a的10秒到25秒之间的内容,则多媒体文件a的片段对象中所保存的多媒体文件的播放起始点为10秒,多媒体文件的播放时长为15秒,即25-10=15,如图3所示。

对于多个多媒体文件的播放,需要确定多媒体文件的播放顺序的,也就是说,在播放拼接后的多媒体文件时,需要知道哪个时间点播放哪个多媒体文件,因此,在本申请中,所创建的片段对象还需要保存其在轨道上的位置。

由于轨道对象是包含有时间线这一属性的,因此,在本申请中,片段对象在轨道上的位置用于确定其在时间线上的位置,也就是位于轨道对象的时间线上的起始时间点,本申请具体给出了确定每个多媒体文件的片段对象在轨道对象的时间线上的位置的方式:对于多个多媒体文件的拼接播放,针对每个轨道对象,位于轨道对象上的第一多媒体文件的片段对象在轨道对象的时间线上起始时间点为零,第二个多媒体文件的片段对象在轨道对象的时间线上起始时间点为前一个(也就是第一个)多媒体文件的片段对象中的播放起始点与播放时长之和,以此类推,直到将所有的多媒体文件的片段对象都添加到轨道对象上,如,假设只有多媒体文件a和多媒体文件b,用户想要先播放多媒体文件a的10秒到25秒之间的内容,其中,播放时长为15秒,再紧接着播放多媒体文件b的5秒到30秒之间的内容,其中,播放时长为25秒,则在创建多媒体文件a的片段对象和多媒体文件b的片段对象的过程中,需要确定出多媒体文件a的片段对象位于轨道对象的时间线上的起始时间点,即,第0秒,以及多媒体文件b的片段对象位于轨道对象的时间线上的起始时间点,即,第15秒,如图4所示,其中,clipa表示多媒体文件a的片段对象,clipb表示多媒体文件b的片段对象,clipa起始点表示多媒体文件a的片段对象位于轨道对象的时间线上的起始时间点,clipb起始点表示多媒体文件b的片段对象位于轨道对象的时间线上的起始时间点,后续在从零开始播放如图4所示的多媒体文件的过程中,启动播放后首先播放多媒体文件a的内容,直到15秒,再紧接着播放多媒体文件b的内容。

在此需要说明的是,有可能存在用户希望启动播放时隔一定的时间在开始播放第一个多媒体文件,或者在播放完一个多媒体文件后,隔一定的时间在播下一个多媒体文件的情况,针对这种情况,在创建片段对象的过程中,对于多个多媒体文件的拼接播放,位于轨道对象上的后一个多媒体文件的片段对象在时间线上起始时间点为前一个多媒体文件的片段对象在时间线上起始时间点、播放时长以及预设的间隔时长之和,如,假设用户希望一开始就播放多媒体文件a,播放时长为15秒,间隔n秒再播放多媒体文件b,则多媒体文件b的片段对象在轨道对象上的时间点为多媒体文件a的片段对象在时间线上起始时间点0秒、播放时长15秒以及n秒(即,预设的间隔时长)之和,即,0+15+n=15+n,如图5所示,其中,clipa表示多媒体文件a的片段对象,clipb表示多媒体文件b的片段对象,clipa起始点表示多媒体文件a的片段对象位于轨道对象的时间线上的起始时间点,clipb起始点表示多媒体文件b的片段对象位于轨道对象的时间线上的起始时间点,后续在从零开始播放如图5所示的多媒体文件的过程中,启动播放后首先播放多媒体文件a的内容,直到(15+n)秒,再播放多媒体文件b的内容。

又如,若,假设用户希望启动播放10s以后再播放多媒体文件a,播放时长为15秒,紧接着再播放多媒体文件b(即,预设的间隔时长为0),则多媒体文件b的片段对象在轨道对象上的时间点为多媒体文件a的片段对象在时间线上起始时间点10秒、播放时长15秒以及0秒(即,预设的间隔时长)之和,即,10+15+0=25,如图6所示,其中,clipa表示多媒体文件a的片段对象,clipb表示多媒体文件b的片段对象,clipa起始点表示多媒体文件a的片段对象位于轨道对象的时间线上的起始时间点,clipb起始点表示多媒体文件b的片段对象位于轨道对象的时间线上的起始时间点,后续在从零开始播放如图6所示的多媒体文件的过程中,启动播放后直到10秒,才开始播放多媒体文件a的内容,直到25秒,再紧接着播放多媒体文件b的内容。

进一步地,当针对每个多媒体文件,创建完成该多媒体文件的片段对象后,可以直接根据所创建的片段对象位于轨道对象的时间线上的起始时间点将所创建的片段对象添加到对应的轨道对象上,也就是针对任一所创建的多媒体文件的片段对象,将该片段对象添加到根据该多媒体文件的类型所创建的轨道对象上,如,如果多媒体文件是配音类型的文件,则创建配音片段对象,并且该配音片段需要添加到根据该配音文件的类型所创建的配音轨道对象上,如果多媒体文件是视频类型的文件,则创建视频片段对象,由于根据视频类型的文件建立了视频画面轨道对象以及视频原音轨道对象,因此,该视频片段对象需要分别添加到根据该视频文件的类型所创建的视频画面轨道对象以及视频原音轨道对象上。

综上所述,将用户想要播放的多媒体文件按照播放顺序进行前后拼接的过程,也即,创建添加有片段对象的轨道对象,具体如下,获取多媒体文件,创建节目对象,根据获取到的多媒体文件的类型,创建所述节目对象对应的轨道对象,根据获取到的每个多媒体文件,创建该多媒体文件的片段对象,根据所创建的片段对象位于轨道对象的时间线上的起始时间点将所创建的片段对象添加到对应的轨道对象。

另外,由于同一个多媒体文件可能创建多个不同类型的轨道对象,因此,在本申请中,当同一个多媒体文件的片段对象添加到所创建的多个不同类型的轨道对象时,需要添加到不同类型的轨道对象的时间线上的相同位置。

进一步地,在将用户想要播放的多媒体文件按照播放顺序进行前后拼接完成之后,后续,可对拼接后的多媒体文件进行播放。

而对拼接后的多媒体文件进行播放的过程中,首先需要根据当前的播放时间点,在预先创建的轨道对象中确定片段对象,其中,当前的播放时间点指的是多媒体文件被播放时当前所处的轨道对象的时间线上的时间点,并且片段对象包含有片段对象在轨道对象的时间线上的起始时间点、多媒体文件的标识、多媒体文件的播放起始时间点以及多媒体文件的播放时长。

进一步地,由于拼接后的每个多媒体文件均位于轨道对象的时间线上的不同位置,也就是说,不同的多媒体文件在时间线上的时间区域是不同的,因此,在本申请中,根据当前的播放时间点,在预先创建的添加有片段对象的轨道对象中确定片段对象,具体可以如下:

在预先创建的轨道对象中,根据片段对象位于轨道对象的时间线上的起始时间点以及播放时长确定所述片段对象所在的时间区间,根据当前的播放时间点,确定包含当前的播放时间点的时间区间所对应的片段对象。

在此需要说明的是,轨道对象的时间线的1秒增幅和终端里系统时间的1秒增幅是一致的,也就是说,时间线增幅1秒,则终端里系统时间也增幅1秒。

例如,本例子中将以多媒体文件为视频文件进行说明,假设用户希望播放视频文件a的10秒到25秒之间的内容,紧接着再播放视频文件b的5秒到30秒之间的内容,因此,首先创建了一个节目对象a,节目对象a下创建了视频画面轨道对象以及视频原音轨道对象,并创建视频文件a的片段对象以及视频文件b的片段对象,将视频文件a的片段对象和视频文件b的片段对象添加到视频画面轨道对象上,即,在视频画面轨道对象的时间线上为零的点添加视频文件a的片段对象,播放时长为15秒,并在视频画面轨道对象的时间线上为15秒的点添加视频文件b的片段对象,播放时长为25秒,添加视频文件a的片段对象以及视频文件b的片段对象后的视频画面轨道对象的时间线是从零到40秒,并将视频文件a和视频文件b添加到视频原音轨道对象上,即,在视频原音轨道对象的时间线上为零的点添加视频文件a的片段对象,播放时长为15秒,并在视频原音轨道对象的时间线上为15秒的点添加视频文件b的片段对象,播放时长为25秒,添加视频文件a的片段对象以及视频文件b的片段对象后的视频原音轨道对象的时间线是从零到40秒,如图7所示,其中,clipa表示视频文件a的片段对象,clipb表示视频文件b的片段对象,clipa起始点表示视频文件a的片段对象位于轨道对象的时间线上的起始时间点,clipb起始点表示视频文件b的片段对象位于轨道对象的时间线上的起始时间点;

假设当前正在播放拼接后的多媒体文件,针对任一所创建的轨道对象,在预先创建的轨道对象中,确定片段对象位于轨道对象的时间线上的起始时间点以及所述播放时长所构成的时间区间,即,针对视频画面轨道对象,在预先创建的添加有视频文件a的片段对象以及视频文件b片段对象的视频画面轨道对象中,确定视频文件a的片段对象位于视频画面轨道对象的时间线上的起始时间点以及播放时长所构成的时间区间为[0,15],确定视频文件b的片段对象位于视频画面轨道对象的时间线上的起始时间点以及播放时长所构成的时间区间为(15,40],同理,确定视频文件a的片段对象位于视频原音轨道对象的时间线上的起始时间点以及播放时长所构成的时间区间为[0,15],确定视频文件b的片段对象位于视频原音轨道对象的时间线上的起始时间点以及播放时长所构成的时间区间为(15,40];

假设当前的播放时间点为0,则根据当前的播放时间点0,在视频画面轨道对象上确定包含当前的播放时间点的时间区间所对应的片段对象为视频文件a的片段对象,在视频原音轨道对象上确定包含当前的播放时间点的时间区间所对应的片段对象为视频文件a的片段对象。

s102:根据所述片段对象中包含的多媒体文件的标识,确定多媒体文件。

由于在轨道对象中所添加的是根据多媒体文件创建的片段对象,而对拼接后的多媒体文件进行播放的过程中,需要对存储的多媒体文件进行解析,因此,在预先创建的添加有片段对象的轨道对象中确定片段对象后,需要根据片段对象中包含的多媒体文件的标识,确定多媒体文件,在本申请中,多媒体文件的标识可以是存储地址。

s103:根据所述片段对象在轨道对象的时间线上的起始时间点、所述当前的播放时间点、所述多媒体文件的播放起始时间点以及所述多媒体文件的播放时长,播放确定出的多媒体文件。

由于一个多媒体文件在存储的时候是整体存储的,而有可能播放该多媒体文件中的一部分内容,因此,在本申请中,需要确定出需要播放该多媒体文件中的哪部分内容。

进一步地,又由于在实际应用中,用户可能会直接将播放帧拖动到轨道对象的时间线上的某一个时间点,也就是说,直接从该时间点开始进行播放,因此,本申请在需要确定出需要播放该多媒体文件中的哪部分内容的过程中,可以直接根据所述片段对象在轨道对象的时间线上的起始时间点、所述当前的播放时间点以及所述多媒体文件的播放时长,确定所述多媒体文件的待播放时长,根据确定出的所述多媒体文件的待播放时长、所述多媒体文件的播放起始时间点以及所述多媒体文件的播放时长,确定所述多媒体文件的待播放多媒体文件片段,播放所述多媒体文件片段。

例如,假设拼接后的视频总长为30秒,且预先在轨道对象中所添加的视频a的片段对象位于轨道对象的时间线上的起始时间点为0,播放时长为15秒,且视频a的播放起始时间点为5秒,也就是,对于视频a本身而言,有效的能够被播放的内容是视频的5s到20s的内容,其他部分不会被播放到,而对于时间线而言,从启动播放时,开始播放视频a,即,启动播放,播放视频a的5s到20s的画面;

用户希望播放时间线上第10s的画面,因此,用户当前将拼接后的视频的视频帧拖动到第10秒(即,当前的播放时间点),根据视频a的片段对象位于轨道对象的时间线上的起始时间点、当前的播放时间点以及视频a的播放时长,确定视频a的待播放时长,即,播放时长-(当前的播放时间点-片段对象位于轨道对象的时间线上的起始时间点)=15-(10-0)=5秒(即,待播放时长),再根据确定出的视频a的待播放时长、视频a的播放起始时间点以及视频a的播放时长,确定视频a的待播放视频片段,即,播放起始时间点+播放时长-确定出的视频a的待播放时长=5+15-5=15秒,也就是,若从第10s开始播放,则播放的是视频a的第15s画面。

在此需要说明的是,由于视频a本身有效的部分是5s到20s,则时间线上的10s到15s的画面会对应视频a的15到20s的画面,时间线第15s以后的画面,则不会再对应视频a的画面。

另外,还需要说明的是,如果当前的播放时间点与多媒体文件位于轨道对象的时间线上的起始时间点相同,则直接按照片段对象包含的多媒体文件的播放起始时间点即可。

进一步地,在对确定出的多媒体片段进行处理的过程中,首先需要对确定出的多媒体文件片段进行解码,以此生成多媒体文件片段对应的数据。另外,由于如果多个轨道对象中均添加有片段对象,那么根据当前的播放时间点能确定出的多个多媒体文件片段,而多个多媒体文件片段均属于当前的播放时间点所需要同时播放的,因此,后续,需要对解码后的多媒体文件片段对应的数据进行同步,播放同步后的多媒体文件片段对应的数据。

在实际应用中,用户有可能希望拼接后的多媒体文件片段直接生成全新的多媒体文件,因此,在本申请中,可直接根据片段对象在轨道对象的时间线上的起始时间点、多媒体文件的播放起始时间点以及多媒体文件的播放时长,确定待合成的多媒体文件片段,并对待合成的多媒体文件片段进行解码,以此生成多媒体文件片段对应的数据,将解码后的多媒体文件片段对应的数据进行同步,再将同步后的多媒体文件片段对应的数据发送给编码器,编码后生成一个全新的多媒体文件。

在此需要说明的是,在本申请中,多媒体文件可以是视频多媒体文件、音频多媒体文件、配音多媒体文件、背景音乐多媒体文件,当然也可以是其他类型的多媒体文件。

通过上述方法,通过创建需要播放的且携带有片段对象在轨道对象的时间线上的起始时间点、多媒体文件的标识、多媒体文件的播放起始时间点以及多媒体文件的播放时长的多媒体文件的片段对象,可以简单有效的实现任意指定多个多媒体文件中的片段的拼接播放,提高了用户想要连续播放本地存储的多个多媒体文件的不同片段时的便利性。

在实际应用中,用户能够对视频文件进行配音,即用配音者的配音取代视频的原音。在进行配音时,将视频文件原声消除,可根据需要添加背景音乐,最后配音者结合视频画面、字幕等进行配音。

进一步地,由于在视频进行配音的过程中,会存在某一时间段内并不需要配音的情况,如,人物说话之间有一段时间是只有画面或背景音乐,而无人说话的,因此,在本申请中,可采用多段不连续配音的方式来进行配音,也就是说,只对需要配音的时间段才进行配音。

采用多段不连续配音的方式来进行配音具体如下:在对视频进行配音的过程中,针对每个需要配音的段落,开始配音时,记录当前视频帧时间戳在时间线上的位置,即该配音文件在时间线上的位置,也就是配音文件在时间线上的开始位置。

在此需要说明的是,在对视频进行配音的过程中,可以给用户提供一个控制录音的界面,该界面上有启动录音按钮,停止录音按钮,用户可以在视频中需要配音的时间段按下启动录音按钮来开始配音,并记录当前视频帧时间戳在时间线上的位置,该时间段结束时在按下停止录音按钮停止录音。当然,具体想要在那个时间段配音,想要用户自己根据实际情况来定,如果用户希望一次将整个视频都配完,则可以直接在视频开始播放的时候按下启动录音的按钮,视频结束的时候再按下停止录音的按钮即可。

进一步地,由于在播放配音后的视频时,是需要视频画面对应的背景音乐和用户的配音,如,假设配音的视频包括视频a的视频画面和视频b的视频画面,则需要获取视频a的视频画面对应的背景音乐和用户的配音,以及视频b的视频画面对应的背景音乐和用户的配音,因此,在本申请中,需要获取背景音乐多媒体文件以及配音文件。

在获取到背景音乐多媒体文件以及配音文件后,再根据获取到的背景音乐多媒体文件创建背景音乐轨道对象,根据获取到的配音文件创建配音轨道对象。

在创建完成背景音乐轨道对象以及配音轨道对象后,再创建背景音乐多媒体文件的片段对象,在创建配音多媒体文件的片段对象,其中,背景音乐多媒体文件的片段对象在创建的时候需要设定并保存背景音乐多媒体文件的标识、背景音乐多媒体文件的播放起始时间点、背景音乐多媒体文件的播放时长以及背景音乐多媒体文件片段对象位于背景音乐轨道对象的时间线上的起始时间点,另外,配音多媒体文件的片段对象在创建的是时候同样需要设定并保存配音多媒体文件的标识、配音多媒体文件的播放起始时间点、配音多媒体文件的播放时长以及配音多媒体文件片段对象位于配音轨道对象的时间线上的起始时间点,而配音多媒体文件的片段对象设定并保存的配音多媒体文件片段对象位于配音轨道对象的时间线上的起始时间点具体可以根据用户在配音时所记录的该配音多媒体文件的起始位置得到,另外,由于是要播放一个配音多媒体文件的全部,而对任何的多媒体文件而言,它本身自己有时间戳,从0开始,到文件本身的时长,因此,配音多媒体文件的播放起始点以及配音文件的播放时长可根据配音多媒体文件自己本身的时间戳来得到。

进一步地,再将所创建的背景音乐多媒体文件的片段对象添加到背景音乐轨道对象上,将所创建的配音多媒体文件的片段对象添加到配音轨道对象上。

进一步地,根据当前的播放时间点,在预先创建的添加有片段对象的视频画面轨道对象中确定视频画面多媒体文件的片段对象,并根据视频画面多媒体文件的片段对象中包含的视频画面多媒体文件的标识,确定视频画面多媒体文件;在预先创建的添加有片段对象的背景音乐轨道对象中确定背景音乐多媒体文件的片段对象,并根据背景音乐多媒体文件的片段对象中包含的背景音乐多媒体文件的标识,确定背景音乐多媒体文件;在预先创建的添加有片段对象的配音轨道对象中确定配音多媒体文件的片段对象,并根据配音多媒体文件的片段对象中包含的配音多媒体文件的标识,确定配音多媒体文件;

后续,根据多媒体文件的片段对象在轨道对象的时间线上的起始时间点、当前的播放时间点、多媒体文件的播放起始时间点以及多媒体文件的播放时长,确定多媒体文件中的多媒体文件片段,即,确定视频画面多媒体文件片段、背景音乐多媒体文件片段和配音多媒体文件片段。

进一步地,将确定出的视频画面多媒体文件片段、背景音乐多媒体文件片段以及配音多媒体文件片段发送给解码器进行解码,以此得到视频画面多媒体文件片段对应的数据、背景音乐多媒体文件片段对应的数据以及配音多媒体文件片段对应的数据,并对解码后的背景音乐多媒体文件片段对应的数据和录制的配音多媒体文件片段对应的数据进行混音处理,以此生成音频数据,同时也可以进行将配音声音放大等音效处理,同时需要将解码后的视频画面与混音后的音频数据做同步处理,以此保证声音和画面的同步,最后进行播放。

另外,如果用户不希望播放,而是希望生成一个全新的带配音的视频文件,则可以将同步后的视频数据以及音频数据送给编码器,使编码器进行编码最终生成新的带有配音的视频文件。

最后,在此需要说明的是,本申请所涉及的方案可用在移动终端内,如,手机,也可用在固定终端内,如,电脑。

以上为本申请实施例提供的多媒体文件播放方法,基于同样的思路,本申请实施例还提供一种多媒体文件播放装置。

如图8所示,本申请实施例提供的一种多媒体文件播放装置,包括:

片段对象确定模块801,用于根据当前的播放时间点,在预先创建的轨道对象中确定片段对象,其中,所述片段对象包含有片段对象在轨道对象的时间线上的起始时间点、多媒体文件的标识、多媒体文件的播放起始时间点以及多媒体文件的播放时长;

多媒体文件确定模块802,用于根据所述片段对象中包含的多媒体文件的标识,确定多媒体文件;

播放模块803,用于根据所述片段对象在轨道对象的时间线上的起始时间点、所述当前的播放时间点、所述多媒体文件的播放起始时间点以及所述多媒体文件的播放时长,播放确定出的多媒体文件。

所述装置还包括:

创建模块804,用于所述片段对象确定模块在预先创建的轨道对象中确定片段对象之前,获取多媒体文件,创建节目对象,根据获取到的多媒体文件的类型,创建所述节目对象对应的轨道对象,根据获取到的每个多媒体文件,创建该多媒体文件的片段对象,根据所创建的片段对象位于轨道对象的时间线上的起始时间点将所创建的片段对象添加到对应的轨道对象。

所述片段对象确定模块801具体用于,在预先创建的轨道对象中,根据所述片段对象位于轨道对象的时间线上的起始时间点以及所述播放时长确定所述片段对象所在的时间区间,根据当前的播放时间点,确定包含当前的播放时间点的时间区间所对应的片段对象。

所述播放模块803具体用于,根据所述片段对象在轨道对象的时间线上的起始时间点以及所述当前的播放时间点,确定所述多媒体文件的已播放时长,根据确定出的所述多媒体文件的已播放时长、所述多媒体文件的播放起始时间点以及所述多媒体文件的播放时长,确定所述多媒体文件中的多媒体文件片段,播放所述多媒体文件片段。

所述播放模块803还用于,对所述多媒体文件片段进行解码,对解码后的多媒体文件片段对应的数据进行同步,播放同步后的多媒体文件片段对应的数据。

所述多媒体文件包括视频多媒体文件、背景音乐多媒体文件以及配音多媒体文件中的至少一个。

该装置还包括:

合成模块805,用于根据所述片段对象在轨道对象的时间线上的起始时间点、所述多媒体文件的播放起始时间点以及所述多媒体文件的播放时长,合成所述视频多媒体文件、背景音乐多媒体文件以及配音多媒体文件中的至少一个。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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