发明内容
本发明的目的旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一个目的在于提出一种音频文件的生成方法。该方法在仅增加少量存储空间的前提下,通过三次样条插值为音频文件增加关键帧,避免了常规的关键帧存储比较占资源、且精度较差的问题,同时通过对音频文件引入关键帧,实现了音频文件播放时的进度控制。
本发明的第二个目的在于提出一种音频文件的生成装置。
本发明的第三个目的在于提出一种音频文件的播放方法。
本发明的第四个目的在于提出一种音频文件的播放装置。
为了实现上述目的,本发明第一方面实施例的音频文件的生成方法,包括:获取音频数据和所述音频数据的总时长,并按照预设的时长步进值对所述音频数据进行编码;获取预留的音频文件的文件头部的预设值;根据所述音频数据的总时长、所述预设的时长步进值、编码后的音频编码数据和所述预留的文件头部的预设值生成关键帧数值对序列;以及将所述关键帧数值对序列作为插值条件进行三次样条插值,以生成三次样条函数,并将所述三次样条函数写入音频文件的文件头部,以及将所述编码后的音频编码数据写入所述音频文件中。
根据本发明实施例的音频文件的生成方法,可先获取音频数据和音频数据的总时长,并按照预设的时长步进值对音频数据进行编码,之后可获取预留的音频文件的文件头部的预设值,并根据音频数据的总时长、预设的时长步进值、编码后的音频编码数据和预留的文件头部的预设值生成关键帧数值对序列,最后将关键帧数值对序列作为插值条件进行三次样条插值以生成三次样条函数,并将三次样条函数写入音频文件的文件头部,将编码后的音频编码数据写入音频文件中,从而生成一个完整的音频文件,即在仅增加少量存储空间的前提下,通过三次样条插值为音频文件增加关键帧,避免了常规的关键帧存储比较占资源、且精度较差的问题,降低了音频文件的大小,同时通过对音频文件引入关键帧,实现了音频文件播放时的进度控制。
为了实现上述目的,本发明第二方面实施例的音频文件的生成装置,包括:第一获取模块,用于获取音频数据和所述音频数据的总时长;编码模块,用于按照预设的时长步进值对所述音频数据进行编码;第二获取模块,用于获取预留的音频文件的文件头部的预设值;第一生成模块,用于根据所述音频数据的总时长、所述预设的时长步进值、编码后的音频编码数据和所述预留的文件头部的预设值生成关键帧数值对序列;以及第二生成模块,用于将所述关键帧数值对序列作为插值条件进行三次样条插值,以生成三次样条函数,并将所述三次样条函数写入音频文件的文件头部,以及将所述编码后的音频编码数据写入所述音频文件中。
根据本发明实施例的音频文件的生成装置,可通过第一获取模块获取音频数据和音频数据的总时长,编码模块按照预设的时长步进值对音频数据进行编码,第二获取模块获取预留的音频文件的文件头部的预设值,第一生成模块根据音频数据的总时长、预设的时长步进值、编码后的音频编码数据和预留的文件头部的预设值生成关键帧数值对序列,最后第二生成模块将关键帧数值对序列作为插值条件进行三次样条插值以生成三次样条函数,并将三次样条函数写入音频文件的文件头部,将编码后的音频编码数据写入音频文件中,从而生成一个完整的音频文件,即在仅增加少量存储空间的前提下,通过三次样条插值为音频文件增加关键帧,避免了常规的关键帧存储比较占资源、且精度较差的问题,降低了音频文件的大小,同时通过对音频文件引入关键帧,实现了音频文件播放时的进度控制。
为了实现上述目的,本发明第三方面实施例的音频文件的播放方法,所述音频文件是根据本发明第一方面实施例的音频文件的生成方法生成的,所述播放方法包括:获取所述音频文件;当接收到播放所述音频文件指令时,读取并初始化所述音频文件的文件头部中的三次样条函数;获取输入的进度时间值,并根据所述进度时间值和所述三次样条函数获取所述进度时间值对应的音频文件位置;根据所述进度时间值对应的音频文件位置对音频文件进行播放。
根据本发明实施例的音频文件的播放方法,可先获取音频文件,在接收到播放音频文件指令时,获取并初始化音频文件的文件头部中的三次样条函数,之后可获取输入的进度时间值,并根据进度时间值和三次样条函数获取进度时间值对应的音频文件位置,最后根据进度时间值对应的音频文件位置对音频文件进行播放,即通过对播放器仅做少量的改造即可支持进度的拖动,实现了音频的进度控制功能,提升了用户体验。
为了实现上述目的,本发明第四方面实施例的音频文件的播放装置,所述音频文件是根据本发明第一方面实施例的音频文件的生成方法生成的,所述播放装置包括:第一获取模块,用于获取所述音频文件;读取模块,用于在接收到播放所述音频文件指令时,读取并初始化所述音频文件的文件头部中的三次样条函数;第二获取模块,用于获取输入的进度时间值,并根据所述进度时间值和所述三次样条函数获取所述进度时间值对应的音频文件位置;播放模块,用于根据所述进度时间值对应的音频文件位置对音频文件进行播放。
根据本发明实施例的音频文件的播放装置,可通过第一获取模块获取音频文件,读取模块在接收到播放音频文件指令时,获取并初始化音频文件的文件头部中的三次样条函数,第二获取模块获取输入的进度时间值,并根据进度时间值和三次样条函数获取进度时间值对应的音频文件位置,播放模块根据进度时间值对应的音频文件位置对音频文件进行播放,即通过对播放器仅做少量的改造即可支持进度的拖动,实现了音频的进度控制功能,提升了用户体验。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的音频文件的生成方法、播放方法及装置。
图1是根据本发明一个实施例的音频文件的生成方法的流程图。如图1所示,该音频文件的生成方法可以包括:
S101,获取音频数据和音频数据的总时长,并按照预设的时长步进值对音频数据进行编码。
其中,需要说明的是,在本发明的实施例中,音频数据为没有经过压缩等处理的原始的声音数据,即PCM(Pulse Code Modulation,脉冲编码调制)数据。
具体地,可先获取音频数据和该音频数据对应的总时长,之后可按照预设的时长步进值(如0.1秒、或0.5秒等)对音频数据进行编码。其中,在本发明的实施例中,可通过非恒定码率(即变长码率)对音频数据进行编码。例如,以预设的时长步进值为0.1秒为例,当对音频数据进行编码时,可每次编码0.1秒的音频块数据(即PCM数据),直至所有的音频数据编码完成。
S102,获取预留的音频文件的文件头部的预设值。
应当理解,在本发明的实施例中,预留的音频文件的文件头部的预设值可以理解为预先在音频文件的文件头部预留的大小,例如,1kBytes(1K字节),即1024Bytes(字节)。
S103,根据音频数据的总时长、预设的时长步进值、编码后的音频编码数据和预留的文件头部的预设值生成关键帧数值对序列。
为了避免常规的关键帧存储比较占资源等的问题,在发明的实施例中,可采用三次样条差值函数来保存关键帧。具体而言,在本发明的一个实施例中,如图2所示,可通过以下步骤生成关键帧数值对序列:
S201,以预设的时长步进值为差值,将音频数据的总时长进行拆分以获取播放时间值序列,播放时间值序列包括多个播放时间值,多个播放时间值是以预设的时长步进值为差值进行排列的。
举例而言,假设获取到的音频数据的总时长为241.2秒,预设的时长步进值为0.1秒,可以0.1秒为差值,将音频数据的总时长241.2秒进行拆分,获得一个播放时间值序列,即{0.1、0.2、0.3、……、240.1、241.2},其中单位为秒。可以看出,播放时间值序列中的播放时间值为以0.1为差值的递增序列。
S202,获取每个播放时间值对应的编码后的音频块编码数据的大小。
也就是说,每个播放时间值对应一个音频块数据,在对这些音频块数据进行编码的过程中,可获取每个播放时间值对应的音频块数据编码后的大小。例如,以播放时间值序列为{0.1、0.2、0.3、……、240.1、241.2}、单位为秒为例,可分别获取播放时间值为0.1秒对应的音频块数据编码后的大小为358byte、播放时间值为0.2秒对应的音频块数据编码后的大小为386byte、……、播放时间值为241.2秒对应的音频块数据编码后的大小为377byte,即可通过如下表2来记录播放时间值与编码后的音频块编码数据的对应关系及大小。
时间(秒) |
0.1 |
0.2 |
0.3 |
0.4 |
0.5 |
… |
240.0 |
240.1 |
241.2 |
大小(byte) |
358 |
386 |
410 |
327 |
334 |
… |
405 |
319 |
377 |
表2
S203,根据预留的文件头部的预设值和每个播放时间值对应的编码后的音频块编码数据的大小,获得每个播放时间值对应的音频文件位置。
例如,以上面表2中的数据为例,可先将表2中每个播放时间值对应的编码后的音频块编码数据的大小进行转换,之后在转换结果的基础上加上预留的文件头部的预设值1K字节,即可获得每个播放时间值对应的音频文件位置,可通过如下表3来表示播放时间值与其对应的音频文件位置的对应关系及大小。
时间(秒) |
0.1 |
0.2 |
0.3 |
0.4 |
0.5 |
… |
240.0 |
240.1 |
241.2 |
位置(byte) |
1382 |
1768 |
2178 |
2505 |
2839 |
… |
843244 |
843563 |
843940 |
表3
结合表2和表3可以看出,播放时间值为0.1秒对应的音频文件位置的计算过程:播放时间值为0.1秒对应的编码后的音频块编码数据的大小(358byte)+预留的文件头部的预设值(1K字节(即1024字节)),播放时间值为0.2秒对应的音频文件位置的计算过程:播放时间值为0.2秒对应的编码后的音频块编码数据的大小(386byte)+播放时间值为0.1秒对应的音频文件位置(1382byte),播放时间值为0.3秒对应的音频文件位置的计算过程:播放时间值为0.3秒对应的编码后的音频块编码数据的大小(410byte)+播放时间值为0.2秒对应的音频文件位置(1768byte),……,播放时间值为241.2秒对应的音频文件位置的计算过程:播放时间值为241.2秒对应的编码后的音频块编码数据的大小(377byte)+播放时间值为240.1秒对应的音频文件位置(843563byte)。也就是说,播放时间值序列中的第一个播放时间值对应的音频文件位置可根据第一播放时间值对应的编码后的音频块编码数据的大小加上预留的文件头部的预设值,播放时间值序列中的其余播放时间值对应的音频文件位置可根据该播放时间值对应的编码后的音频块编码数据的大小和前一个播放时间值对应的音频文件位置获得。
S204,根据每个播放时间值和每个播放时间值对应的音频文件位置组成关键帧数值对序列。
具体地,可将播放时间值序列中的每个播放时间值与每个播放时间值对应的音频文件位置对应的记录在一起以形成一个数值对序列,即将上面表3中的数据成对的记录在一个序列中以组成关键帧数值对序列。可以看出,在本发明的实施例中,关键帧数值对序列可包含多个关键帧数值对,每个关键帧数值对可包含播放时间值和与播放时间值对应的音频文件位置。
S104,将关键帧数值对序列作为插值条件进行三次样条插值,以生成三次样条函数,并将三次样条函数写入音频文件的文件头部,以及将编码后的音频编码数据写入音频文件中。
具体地,可将关键帧数值对序列作为插值条件进行三次样条插值,最终可得到一个插值函数,即三次样条函数,之后可将这个三次样条函数写入音频文件的文件头部,将编码后的音频编码数据写入音频文件中,从而生成一个完整的音频文件。
为了优化三次样条函数的精度,在本发明的实施例中,为了简化三次样条函数,最终并不需要将所有的关键帧数值对作为插值条件。例如,第一批插值条件以0.5秒为步进,并保留边界两端的数据,记为S(xi)=yi,i=0、1、2…、n,xi=0、0.5、1、1.5…。插值结束后得到一个三次样条函数f(xi)。第二批插值条件以0.2秒为步进,如果已包含在第一批的插值条件中,则抛弃这对数据,记为S(xj)=yj,j=0、1、2…、m,xj=0.2、0.4、0.6…。首先进行插值结果测试,例如,如果fabs(f(xj)-yj)<500,其中500的单位为字节,则S(xj)=yj这对数据可以忽略,否则作为插值条件。最终的插值条件集合是第一批插值条件和部分第二批插值条件的集合。由此,简化了三次样条函数。
根据本发明实施例的音频文件的生成方法,可先获取音频数据和音频数据的总时长,并按照预设的时长步进值对音频数据进行编码,之后可获取预留的音频文件的文件头部的预设值,并根据音频数据的总时长、预设的时长步进值、编码后的音频编码数据和预留的文件头部的预设值生成关键帧数值对序列,最后将关键帧数值对序列作为插值条件进行三次样条插值以生成三次样条函数,并将三次样条函数写入音频文件的文件头部,将编码后的音频编码数据写入音频文件中,从而生成一个完整的音频文件,即在仅增加少量存储空间的前提下,通过三次样条插值为音频文件增加关键帧,避免了常规的关键帧存储比较占资源、且精度较差的问题,降低了音频文件的大小,同时通过对音频文件引入关键帧,实现了音频文件播放时的进度控制。
为了实现上述实施例,本发明还提出了一种音频文件的生成装置。
图3是根据本发明一个实施例的音频文件的生成装置的结构示意图。如图3所示,该音频文件的生成装置可以包括:第一获取模块110、编码模块120、第二获取模块130、第一生成模块140和第二生成模块150。
具体地,第一获取模块110可用于获取音频数据和音频数据的总时长。编码模块120可用于按照预设的时长步进值对音频数据进行编码。其中,需要说明的是,在本发明的实施例中,音频数据为没有经过压缩等处理的原始的声音数据,即PCM数据。
更具体地,第一获取模块110可获取音频数据和该音频数据对应的总时长,编码模块120可按照预设的时长步进值(如0.1秒、或0.5秒等)对音频数据进行编码。其中,在本发明的实施例中,可通过非恒定码率(即变长码率)对音频数据进行编码。例如,以预设的时长步进值为0.1秒为例,当对音频数据进行编码时,可每次编码0.1秒的音频块数据(即PCM数据),直至所有的音频数据编码完成。
第二获取模块130可用于获取预留的音频文件的文件头部的预设值。应当理解,在本发明的实施例中,预留的音频文件的文件头部的预设值可以理解为预先在音频文件的文件头部预留的大小,例如,1kBytes(1K字节),即1024Bytes(字节)。
第一生成模块140可用于根据音频数据的总时长、预设的时长步进值、编码后的音频编码数据和预留的文件头部的预设值生成关键帧数值对序列。为了避免常规的关键帧存储比较占资源等的问题,在发明的实施例中,可采用三次样条差值函数来保存关键帧。具体而言,在本发明的一个实施例中,如图4所示,第一生成模块140可包括第一获取单元141、第二获取单元142、第三获取单元143和生成单元144。
具体地,第一获取单元141可用于以预设的时长步进值为差值,将音频数据的总时长进行拆分以获取播放时间值序列,播放时间值序列包括多个播放时间值,多个播放时间值是以预设的时长步进值为差值进行排列的。举例而言,假设获取到的音频数据的总时长为241.2秒,预设的时长步进值为0.1秒,第一获取单元141可以0.1秒为差值,将音频数据的总时长241.2秒进行拆分,获得一个播放时间值序列,即{0.1、0.2、0.3、……、240.1、241.2},其中单位为秒。可以看出,播放时间值序列中的播放时间值为以0.1为差值的递增序列。
第二获取单元142可用于获取每个播放时间值对应的编码后的音频块编码数据的大小。也就是说,每个播放时间值对应一个音频块数据,在对这些音频块数据进行编码的过程中,第二获取单元142可获取每个播放时间值对应的音频块数据编码后的大小。例如,以播放时间值序列为{0.1、0.2、0.3、……、240.1、241.2}、单位为秒为例,可分别获取播放时间值为0.1秒对应的音频块数据编码后的大小为358byte、播放时间值为0.2秒对应的音频块数据编码后的大小为386byte、……、播放时间值为241.2秒对应的音频块数据编码后的大小为377byte,即可通过如下表2来记录播放时间值与编码后的音频块编码数据的对应关系及大小。
时间(秒) |
0.1 |
0.2 |
0.3 |
0.4 |
0.5 |
… |
240.0 |
240.1 |
241.2 |
大小(byte) |
358 |
386 |
410 |
327 |
334 |
… |
405 |
319 |
377 |
表2
第三获取单元143可用于根据预留的文件头部的预设值和每个播放时间值对应的编码后的音频块编码数据的大小,获得每个播放时间值对应的音频文件位置。例如,以上面表2中的数据为例,第三获取单元143可先将表2中每个播放时间值对应的编码后的音频块编码数据的大小进行转换,之后在转换结果的基础上加上预留的文件头部的预设值1K字节,即可获得每个播放时间值对应的音频文件位置,可通过如下表3来表示播放时间值与其对应的音频文件位置的对应关系及大小。
时间(秒) |
0.1 |
0.2 |
0.3 |
0.4 |
0.5 |
… |
240.0 |
240.1 |
241.2 |
位置(byte) |
1382 |
1768 |
2178 |
2505 |
2839 |
… |
843244 |
843563 |
843940 |
表3
结合表2和表3可以看出,播放时间值为0.1秒对应的音频文件位置的计算过程:播放时间值为0.1秒对应的编码后的音频块编码数据的大小(358byte)+预留的文件头部的预设值(1K字节(即1024字节)),播放时间值为0.2秒对应的音频文件位置的计算过程:播放时间值为0.2秒对应的编码后的音频块编码数据的大小(386byte)+播放时间值为0.1秒对应的音频文件位置(1382byte),播放时间值为0.3秒对应的音频文件位置的计算过程:播放时间值为0.3秒对应的编码后的音频块编码数据的大小(410byte)+播放时间值为0.2秒对应的音频文件位置(1768byte),……,播放时间值为241.2秒对应的音频文件位置的计算过程:播放时间值为241.2秒对应的编码后的音频块编码数据的大小(377byte)+播放时间值为240.1秒对应的音频文件位置(843563byte)。也就是说,播放时间值序列中的第一个播放时间值对应的音频文件位置可根据第一播放时间值对应的编码后的音频块编码数据的大小加上预留的文件头部的预设值,播放时间值序列中的其余播放时间值对应的音频文件位置可根据该播放时间值对应的编码后的音频块编码数据的大小和前一个播放时间值对应的音频文件位置获得。
生成单元144可用于根据每个播放时间值和每个播放时间值对应的音频文件位置组成关键帧数值对序列。更具体地,生成单元144可将播放时间值序列中的每个播放时间值与每个播放时间值对应的音频文件位置对应的记录在一起以形成一个数值对序列,即将上面表3中的数据成对的记录在一个序列中以组成关键帧数值对序列。可以看出,在本发明的实施例中,关键帧数值对序列可包含多个关键帧数值对,每个关键帧数值对可包含播放时间值和与播放时间值对应的音频文件位置。
第二生成模块150可用于将关键帧数值对序列作为插值条件进行三次样条插值,以生成三次样条函数,并将三次样条函数写入音频文件的文件头部,以及将编码后的音频编码数据写入音频文件中。更具体地,第二生成模块150可将关键帧数值对序列作为插值条件进行三次样条插值,最终可得到一个插值函数,即三次样条函数,之后可将这个三次样条函数写入音频文件的文件头部,将编码后的音频编码数据写入音频文件中,从而生成一个完整的音频文件。
为了优化三次样条函数的精度,在本发明的实施例中,为了简化三次样条函数,最终并不需要将所有的关键帧数值对作为插值条件。例如,第一批插值条件以0.5秒为步进,并保留边界两端的数据,记为S(xi)=yi,i=0、1、2…、n,xi=0、0.5、1、1.5…。插值结束后得到一个三次样条函数f(xi)。第二批插值条件以0.2秒为步进,如果已包含在第一批的插值条件中,则抛弃这对数据,记为S(xj)=yj,j=0、1、2…、m,xj=0.2、0.4、0.6…。首先进行插值结果测试,,例如,如果fabs(f(xj)-yj)<500,其中500的单位为字节,则S(xj)=yj这对数据可以忽略,否则作为插值条件。最终的插值条件集合是第一批插值条件和部分第二批插值条件的集合。由此,简化了三次样条函数。
根据本发明实施例的音频文件的生成装置,可通过第一获取模块获取音频数据和音频数据的总时长,编码模块按照预设的时长步进值对音频数据进行编码,第二获取模块获取预留的音频文件的文件头部的预设值,第一生成模块根据音频数据的总时长、预设的时长步进值、编码后的音频编码数据和预留的文件头部的预设值生成关键帧数值对序列,最后第二生成模块将关键帧数值对序列作为插值条件进行三次样条插值以生成三次样条函数,并将三次样条函数写入音频文件的文件头部,将编码后的音频编码数据写入音频文件中,从而生成一个完整的音频文件,即在仅增加少量存储空间的前提下,通过三次样条插值为音频文件增加关键帧,避免了常规的关键帧存储比较占资源、且精度较差的问题,降低了音频文件的大小,同时通过对音频文件引入关键帧,实现了音频文件播放时的进度控制。
在音频文件引入以三次样条函数的形式保存的关键帧之后,播放器在播放该音频文件时也应做少量的改造以实现关键帧的作用,即支持进度的拖动。为此,本发明还提出了一种音频文件的播放方法。
图5是根据本发明一个实施例的音频文件的播放方法的流程图。
需要说明的是,在本发明的实施例中,音频文件是根据上述实施例的音频文件的生成方法所生成的,该音频文件具有关键帧,该关键帧是以三次样条函数的形式保存在音频文件的文件头部。如图5所示,该音频文件的播放方法可以包括:
S501,获取音频文件。
S502,当接收到播放音频文件指令时,读取并初始化音频文件的文件头部中的三次样条函数。
例如,在接收到用户针对音频文件输入的播放指令时,可先从音频文件的文件头部读取并初始化文件头部中的三次样条函数。
S503,获取输入的进度时间值,并根据进度时间值和三次样条函数获取进度时间值对应的音频文件位置。
例如,当检测到用户想对音频文件进行进度的拖动控制时,可先获取用户输入的进度时间值,并根据该进度时间值和三次样条函数找到该进度时间值在音频文件中的大概位置。
S504,根据进度时间值对应的音频文件位置对音频文件进行播放。
具体地,在找到进度时间值在音频文件中的大概位置之后,可从该位置开始找到下一个完整的音频帧帧头即可开始播放。
根据本发明实施例的音频文件的播放方法,可先获取音频文件,在接收到播放音频文件指令时,获取并初始化音频文件的文件头部中的三次样条函数,之后可获取输入的进度时间值,并根据进度时间值和三次样条函数获取进度时间值对应的音频文件位置,最后根据进度时间值对应的音频文件位置对音频文件进行播放,即通过读取音频文件中基于三次样条函数保存的关键帧即可找到用户输入的时间点所对应的音频文件位置,使得对播放器仅做少量的改造即可支持进度的拖动,实现了音频的进度控制功能,提升了用户体验。
为了实现上述实施例,本发明还提出了一种音频文件的播放装置。
图6是根据本发明一个实施例的音频文件的播放装置的结构示意图。如图6所示,该音频文件的播放装置可以包括:第一获取模块210、读取模块220、第二获取模块230和播放模块240。
具体地,第一获取模块210可用于获取音频文件。
读取模块220可用于在接收到播放音频文件指令时,读取并初始化音频文件的文件头部中的三次样条函数。例如,读取模块220在接收到用户针对音频文件输入的播放指令时,可先从音频文件的文件头部读取并初始化文件头部中的三次样条函数。
第二获取模块230可用于获取输入的进度时间值,并根据进度时间值和三次样条函数获取进度时间值对应的音频文件位置。例如,当检测到用户想对音频文件进行进度的拖动控制时,第二获取模块230可先获取用户输入的进度时间值,并根据该进度时间值和三次样条函数找到该进度时间值在音频文件中的大概位置。
播放模块240可用于根据进度时间值对应的音频文件位置对音频文件进行播放。更具体地,在第二获取模块230找到进度时间值在音频文件中的大概位置之后,播放模块240可从该位置开始找到下一个完整的音频帧帧头即可开始播放。
根据本发明实施例的音频文件的播放装置,可通过第一获取模块获取音频文件,读取模块在接收到播放音频文件指令时,获取并初始化音频文件的文件头部中的三次样条函数,第二获取模块获取输入的进度时间值,并根据进度时间值和三次样条函数获取进度时间值对应的音频文件位置,播放模块根据进度时间值对应的音频文件位置对音频文件进行播放,即通过读取音频文件中基于三次样条函数保存的关键帧即可找到用户输入的时间点所对应的音频文件位置,使得对播放器仅做少量的改造即可支持进度的拖动,实现了音频的进度控制功能,提升了用户体验。
在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。