音频播放方法及装置与流程

文档序号:12907190阅读:192来源:国知局
音频播放方法及装置与流程

本发明实施例涉及音频处理技术领域,尤其涉及一种音频播放方法及装置。



背景技术:

在对音频进行播放之前,需要对音频进行解码,并对解码后的音频进行播放。未解码音频文件通常由多个未解码音频段构成,每一个未解码音频段对应的播放时长通常相同,每一个未解码音频段对应一个未解码音频信息,未解码音频信息中通常包括该未解码音频段在内存中的位置、该未解码音频段的播放时刻及播放时长等。

在音频播放之前,根据未解码音频段的播放时刻,将播放时刻靠前一部分未解码音频段对应的未解码音频信息存放至未解码音频信息队列中,其中,播放时间越靠前的未解码音频段对应的未解码音频信息越靠近队列的队首。在现有技术中,通常将未解码音频与解码音频的个数比值设置为1,即,一个未解码音频对应一个解码音频;相应的,在音频播放过程中,先对未解码音频信息队列中第一个未解码音频信息对应的未解码音频段进行解码,得到解码音频段,然后,获取未解码音频信息队列中第一个未解码音频信息中的播放时刻,并在该播放时刻对解码音频段进行播放,同时,终端设备根据预设的个数比值1,在未解码音频信息队列中删除一个位于队首的未解码音频信息。

然而,在实际应用过程中,对于部分音频文件,需要多个未解码音频段才能解码得到一个解码音频段,在根据多个未解码音频段得到一个解码音频段之后,终端设备依然根据预设的个数比值1,在未解码音频信息队列中删除一个位于队首的未解码音频信息。这样,在终端设备下次解码得到一个解码音频段之后,在未解码音频信息队列中第一个未解码音频信息中获取得到的播放时刻与解码音频信息的实际播放时刻不符,使得音频播放异常,导致音频播放可靠性较差。



技术实现要素:

本发明实施例提供一种音频播放方法及装置,提高了音频播放的可靠性。

第一方面,本发明实施例提供一种音频播放方法,包括:

对至少一个未解码音频段进行解码,得到第一解码音频段;

获取所述第一解码音频段对应的未解码音频段的个数n,所述n为大于或等于1的整数;

将未解码音频信息队列中、第一个未解码音频信息中的播放时刻,确定为所述第一解码音频段的第一播放时刻,并在所述第一播放时刻播放所述第一解码音频段,所述未解码音频信息队列中一个未解码音频信息对应一个未解码音频段;

在所述未解码音频信息队列中删除前n个未解码音频信息。

在一种可能的实施方式中,所述对至少一个未解码音频段进行解码,得到第一解码音频段,包括:

步骤a、对所述未解码信息队列中、前m个未解码音频信息对应的未解码音频段进行解码;

步骤b、判断解码是否成功;若是,则执行步骤c;若否,则执行步骤d;

步骤c、将解码得到的音频段确定为所述第一解码音频段;

步骤d、则将所述m的值加1,并执行步骤a;

其中,所述m的初始值为1。

在另一种可能的实施方式中,获取所述第一解码音频段对应的未解码音频段的个数n,包括:

获取所述第一解码音频段的第一播放时长、及一个未解码音频段的第二播放时长;

根据所述第一播放时长和所述第二播放时长的比值,确定所述n。

在另一种可能的实施方式中,获取所述第一解码音频段的第一播放时长,包括:

获取所述第一解码音频段的音频大小、预设的音频采样位数、预设的音频声道个数及预设的音频采样率;

根据所述音频大小、所述音频采样位数、所述音频声道个数和所述音频采样率,确定所述第一播放时长。

在另一种可能的实施方式中,获取所述第一解码音频段对应的未解码音频段的个数n之后,还包括:

在缓存中存储所述n。

在另一种可能的实施方式中,所述方法还包括:

在所述缓存中获取所述n;

根据所述未解码音频信息队列中前n个未解码音频信息,获取n个未解码音频段;

对所述n个未解码音频段进行解码,得到第二解码音频段;

将未解码音频信息队列中、第一个未解码音频信息中的播放时刻,确定为所述第二解码音频段的第二播放时刻,并在所述第二播放时刻播放所述第二解码音频段;

在所述未解码音频信息队列中删除前n个未解码音频信息。

第二方面,本发明实施例提供一种音频播放装置,包括解码模块、第一获取模块、确定模块、播放模块及删除模块,其中,

所述解码模块用于,对至少一个未解码音频段进行解码,得到第一解码音频段;

所述第一获取模块用于,获取所述第一解码音频段对应的未解码音频段的个数n,所述n为大于或等于1的整数;

所述确定模块用于,将未解码音频信息队列中、第一个未解码音频信息中的播放时刻,确定为所述第一解码音频段的第一播放时刻;

所述播放模块用于,在所述第一播放时刻播放所述第一解码音频段,所述未解码音频信息队列中一个未解码音频信息对应一个未解码音频段;

所述删除模块用于,在所述未解码音频信息队列中删除前n个未解码音频信息。

在一种可能的实施方式中,所述解码模块具体用于执行如下步骤:

步骤a、对所述未解码信息队列中、前m个未解码音频信息对应的未解码音频段进行解码;

步骤b、判断解码是否成功;若是,则执行步骤c;若否,则执行步骤d;

步骤c、将解码得到的音频段确定为所述第一解码音频段;

步骤d、则将所述m的值加1,并执行步骤a;

其中,所述m的初始值为1。

在另一种可能的实施方式中,所述第一获取模块包括获取单元和确定单元,其中,

所述获取单元用于,获取所述第一解码音频段的第一播放时长、及一个未解码音频段的第二播放时长;

所述确定单元用于,根据所述第一播放时长和所述第二播放时长的比值,确定所述n。

在另一种可能的实施方式中,所述获取单元具体用于:

获取所述第一解码音频段的音频大小、预设的音频采样位数、预设的音频声道个数及预设的音频采样率;

根据所述音频大小、所述音频采样位数、所述音频声道个数和所述音频采样率,确定所述第一播放时长。

在另一种可能的实施方式中,所述装置还包括存储模块,其中,

所述存储模块用于,在所述第一获取模块获取所述第一解码音频段对应的未解码音频段的个数n之后,在缓存中存储所述n。

在另一种可能的实施方式中,所述装置还包括第二获取模块和第三获取模块,其中,

所述第二获取模块用于,在所述缓存中获取所述n;

所述第三获取模块用于,根据所述未解码音频信息队列中前n个未解码音频信息,获取n个未解码音频段;

所述解码模块还用于,对所述n个未解码音频段进行解码,得到第二解码音频段;

所述确定模块还用于,将未解码音频信息队列中、第一个未解码音频信息中的播放时刻,确定为所述第二解码音频段的第二播放时刻;

所述播放模块还用于,在所述第二播放时刻播放所述第二解码音频段;

所述删除模块还用于,在所述未解码音频信息队列中删除前n个未解码音频信息。

本发明实施例提供的音频播放方法及装置,在根据至少一个未解码音频段解码得到第一解码音频段之后,获取第一解码音频段对应的未解码音频段的个数n,并将第一解码音频段的第一播放时刻确定为未解码音频信息队列中第一个未解码音频信息中的播放时刻,并在该第一播放时刻播放第一解码音频段,由于未解码音频信息队列中第一个未解码音频信息中的播放时刻即为该n个未解码音频段中最早的一个播放时刻,因此,可以确保第一解码音频段的播放时刻是正确的。进一步的,还在未解码音频信息队列中删除前n个未解码音频信息,即删除的未解码音频信息的个数和上次解码过程中进行解码的未解码音频段的个数相同,这样,可以使得当前未解码音频信息队列中位于队首的未解码音频信息与下次解码过程中、需要进行解码的播放时刻最早的未解码音频段对应,进而可以保证确定得到下次解码得到的解码音频段的播放时刻为正确的。依次类推,可以确保每一个解码音频段的播放时刻正确,进而可以避免音频播放异常的问题,进而提高了音频播放的可靠性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的音频播放方法的应用场景示意图;

图2为本发明实施例提供的音频播放方法的流程示意图一;

图3为本发明实施例提供的音频播放方法的流程示意图二;

图4为本发明实施例提供的未解码音频段和未解码音频信息的对应关系图;

图5为本发明实施例提供的音频播放装置的结构示意图一;

图6为本发明实施例提供的音频播放装置的结构示意图二;

图7为本发明实施例提供的音频播放装置的结构示意图三。

具体实施方式

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

图1为本发明实施例提供的音频播放方法的应用场景示意图。请参见图1,终端设备可以为手机、电脑、电视等设备,终端设备可以对音频进行解码,并对音频进行播放。请参见图1,未解码音频在终端设备中以未解码音频段的形式存储,例如,每个未解码音频段中可以包括预设个数的音频采样帧,可选的,每个未解码音频段中包括的音频采样帧的个数可以相同,相应的,每个未解码音频段的播放时长也相同。每一个未解码音频段有其对应的未解码音频信息,未解码音频信息中包括未解码音频段的属性信息,例如,未解码音频信息中包括未解码音频段在内存中的地址、未解码音频的播放时刻、未解码音频段的播放时长等信息。

当需要进行音频播放时,在终端设备中创建未解码音频对应的未解码音频信息队列,并根据未解码音频段的播放时刻,并将播放时刻较早的部分未解码音频段的未解码音频信息存放至未解码音频信息队列,其中,位于队首的未解码音频信息对应的未解码音频段的播放时刻最早。例如,请参见图1,假设未解码音频信息队列中最多可以存储4个未解码音频信息,未解码音频段1的播放时刻为第0ms,未解码音频段1对应的未解码音频信息1位于未解码音频信息队列的队首,未解码音频段2的播放时刻为第10ms,未解码音频段2对应的未解码音频信息2位于未解码音频信息队列的第二位,依次类推,未解码音频信息3位于第三位,未解码音频信息4位于第四位。

在进行音频播放时,先根据未解码音频信息队列中未解码音频信息1,获取未解码音频段1,并根据未解码音频频段1进行解码,若根据未解码音频段1无法正确解码,则再根据未解码音频信息2,获取未解码音频段2,并根据未解码音频段1和未解码音频段2进行解码。假设根据未解码音频段1和未解码音频段2解码得到解码音频频段1,并将位于队首的未解码音频信息1中的播放时刻(第0ms)确定为解码音频段1的播放时刻,并在第0ms播放解码音频段1,同时,终端设备还确定解码音频段1对应的未解码音频段的个数(2),并在未解码音频信息队列中删除2个未解码音频信息(未解码音频信息1和未解码音频信息2)。

由于解码音频段的播放时刻为未解码音频信息队列中位于队首的未解码音频信息中的播放时刻,因此,为了保证解码音频频段的播放时刻是正确的,则需要保证位于未解码音频信息队列中队首的未解码音频信息是正确的。在本申请中,在确定完一个解码音频段的播放时刻之后,计算该解码音频段对应的未解码音频段个数,并根据该解码音频段对应的未解码音频段个数,在未解码音频信息队列中删除对应个数的未解码音频信息,这样,可以确保下一个解码音频段的播放时刻是正确的,依次类推,可以确定音频中每一个解码音频段的播放时刻为正确的,可以避免音频播放异常的问题,进而提高了音频播放的可靠性。

下面,通过具体实施例,对本申请所示的技术方案进行详细说明。需要说明的是,下面几个具体实施例可以相互结合,对于相同或相似的内容,在不同的实施例中不再进行赘述。

图2为本发明实施例提供的音频播放方法的流程示意图一。请参见图2,该方法可以包括:

s201、对至少一个未解码音频段进行解码,得到第一解码音频段。

本发明实施例的执行主体可以为终端设备,也可以为设置在终端设备中的音频播放装置。可选的,音频播放装置可以通过软件实现,或者,音频播放装置也可以通过软件和硬件的结合实现。

对于不同的音频文件,由于音频的编码方式不同,因此,可能需要一个未解码音频段就可以解码得到一个解码音频段,也可能需要两个未解码音频段才能够解码得到一个解码音频段,还可能需要更多个未解码音频段才能够解码得到一个解码音频段。由于同一个音频文件通常采用一种编码方式,因此,对于同一个音频文件,解码得到一个解码音频段所需的未解码音频段的个数通常为固定的。

在终端设备需要对音频文件进行播放时,根据未解码音频段的播放时刻,将预设个数个未解码音频段对应的未解码音频信息存放在未解码音频信息队列中,进一步的,当未解码音频信息队列中的部分未解码音频信息被删除之后,还可以在未解码音频信息队列中增加新的未解码音频信息,以保证未解码音频信息队列中同时可以包括预设个数个未解码音频信息。例如,该预设个数可以为4个、6个、8个等,在实际应过程中,可以根据实际需要设置该预设个数,本发明实施例对此不作具体限定。

在终端设备第一次对音频文件中的未解码音频段进行解码时,终端设备不知道需要几个未解码音频段才能够解码得到一个解码音频段,因此,终端设备需要尝试对不同个数的未解码音频段进行解码,直至可以正确的解码得到一个解码音频段。可选的,可以通过如下可行的实现方式对至少一个未解码音频段进行解码,得到第一解码音频段:

对未解码信息队列中、前m个未解码音频信息对应的未解码音频段进行解码;若解码成功,则将解码得到的音频段确定为第一解码音频段;若解码失败,则将m加1,并对未解码信息队列中、前m+1个未解码音频信息对应的未解码音频段进行解码,直至解码成功;其中,初始时,m为1。

具体的,可以先对未解码信息队列中的第一未解码音频信息对应的一个未解码音频段进行解码,并判断是否能够解码成功,若否,则对未解码信息队列中前两个未解码音频信息对应的两个未解码音频段进行解码,并判断是否能够解码成功,若还不成功,则对未解码信息队列中前三个未解码音频信息对应的三个未解码音频段进行解码,依次类推,直至解码成功,或者,当m+1大于预设阈值时,确定解码失败。

s202、获取第一解码音频段对应的未解码音频段的个数n,n为大于或等于1的整数。

可选的,可以通过如下可行的实现方式获取n:获取第一解码音频段的第一播放时长、及一个未解码音频段的第二播放时长,根据第一播放时长和第二播放时长,确定n。

可选的,可以通过如下可行的实现方式确定第一播放时长:获取第一解码音频段的音频大小、预设的音频采样位数、预设的音频声道个数及预设的音频采样率;根据音频大小、音频采样位数、音频声道个数和音频采样率,确定第一播放时长。

例如,可以通过如下公式一确定第一播放时长d:

其中,s为音频大小,b为音频采样位数,r为音频采样率,n为音频声道个数。可选的,s的单位可以为字节,b的单位可以为字节,r的单位可以为赫兹,n为正整数。

例如,假设解码音频段的音频大小为6144字节,采样位数为2个字节,声道个数为2,采样率为48000赫兹,则第一播放时长为:秒。

可选的,未解码音频段对应的未解码音频信息中通常包括未解码音频段的播放时长,相应的,可以在未解码音频段对应的未解码音频信息中获取第二播放时长。

可选的,可以先获取第一播放时长和第二播放时长的比值,若该比值为整数,则可以直接将该比值确定为n,若该比值为非整数,则可以将该比值进行四舍五入,以得到n。例如,假设第一播放时长和第二播放时长的比值为1.98,则对1.98进行四舍五入之后,可以确定n为2;假设第一播放时长和第二播放时长的比值为2.11,则对2.11进行四舍五入之后,可以确定n为2。

需要说明的是,还可以根据其它可行的实现方式获取第一解码音频段对应的未解码音频段的个数n,本发明实施例对此不作具体限定。例如,在执行s201时,终端设备直接统计根据多少个未解码音频段解码可以成功解码得到第一解码音频段,进而可以确定得到该个数n。

s203、将未解码音频信息队列中、第一个未解码音频信息中的播放时刻,确定为第一解码音频段的第一播放时刻,并在第一播放时刻播放第一解码音频段。

在解码得到第一解码音频段之后,在未解码音频信息队列中获取第一个未解码音频信息,并将第一个未解码音频信息中的播放时刻确定为第一解码音频段的第一播放时刻,并在第一播放时刻播放第一解码音频段。

需要说明的是,s202和s203可以顺序执行,也可以并行执行;当s202和s203顺序执行时,还可以先执行s203,再执行s202。本发明实施例对s202和s203的执行顺序不作具体限定。

s204、在未解码音频信息队列中删除前n个未解码音频信息。

在确定得到第一解码音频段的第一播放时刻之后,在未解码音频信息队列中删除前n个未解码音频信息。相应的,位于未解码音频信息队列后边的未解码音频信息向未解码音频信息的队首位置移动。可选的,还可以在未解码音频信息队列的队尾增加新的未解码音频信息。需要说明是的,对未解码音频信息的位置移动的过程,可以参见图4所示的实施例中的描述,此处不再进行赘述。

在上述过程中,第一解码音频段由n个未解码音频段解码得到,下一个解码得到的解码音频段的播放时刻应该为第n+1个未解码音频段的播放时刻。在本申请中,在未解码音频信息队列中删除前n个未解码音频信息之后,位于未解码音频信息队列队首的未解码音频信息中的播放时刻即为第n+1个未解码音频段的播放时刻,因此,根据上述方法可以确保每一个解码音频段的播放时刻正确。

需要说明的是,对于同一音频文件,需要进行多次解码,在对音频文件进行第一次解码时,可以通过图2实施例所示的方法确定解码音频段对应的未解码音频段的个数n,并进行音频播放。由于同一个音频文件中、一个解码音频段对应的未解码音频段的个数通常为固定的,因此,在第一次进行音频解码时确定得到解码音频段对应的未解码音频段的个数n之后,可以缓存该个数n,在进行后续音频解码时,直接在缓存中获取该个数n即可,这样,可以提高音频解码的效率,进而可以提高音频播放的流畅程度。

本发明实施例提供的音频播放方法,在根据至少一个未解码音频段解码得到第一解码音频段之后,获取第一解码音频段对应的未解码音频段的个数n,并将第一解码音频段的第一播放时刻确定为未解码音频信息队列中第一个未解码音频信息中的播放时刻,并在该第一播放时刻播放第一解码音频段,由于未解码音频信息队列中第一个未解码音频信息中的播放时刻即为至少一个未解码音频段中最早的一个播放时刻,因此,可以确保第一解码音频段的播放时刻是正确的。进一步的,还在未解码音频信息队列中删除前n个未解码音频信息,删除的未解码音频信息的个数和上次解码过程中进行解码的未解码音频段的个数相同,这样,可以使得未解码音频信息队列中位于队首的未解码音频信息与下次解码过程中、需要进行解码的播放时刻最早的未解码音频段对应,进而可以保证确定得到下次解码得到的解码音频段的播放时刻为正确的。依次类推,可以确保每一个解码音频段的播放时刻正确,可以避免音频播放异常的问题,进而提高音频播放的可靠性。

在图2所示实施例的基础上,可选的,在获取第一解码音频段对应的未解码音频段的个数n之后,还可以在缓存中存储n。相应的,对于下次解码,可以通过如下可行的实现方式进行解码及音频播放:在缓存中获取n;根据未解码音频信息队列中前n个未解码音频信息,获取n个未解码音频段;对n个未解码音频段进行解码,得到第二解码音频段;将未解码音频信息队列中、第一个未解码音频信息中的播放时刻,确定为第二解码音频段的第二播放时刻,并在第二播放时刻播放第二解码音频段;在未解码音频信息队列中删除前n个未解码音频信息。

在上述任意一个实施例的基础上,下面,结合图4,通过图3所示的实施例,对音频文件第一次和第二次的解码、播放过程进行详细说明。

图3为本发明实施例提供的音频播放方法的流程示意图二。图4为本发明实施例提供的未解码音频段和未解码音频信息的对应关系图。请参见图3-图4,该方法可以包括:

s301、根据未解码音频信息队列中的未解码音频信息1获取未解码音频段1,并根据未解码音频段1进行解码。

请参见图4中的401,待播放的音频文件由多个未解码音频段构成,每一个未解码音频段的播放时长均相同,每一个未解码音频段对应一个未解码音频信息,未解码音频信息中包括对应的未解码音频段在内存中的地址、未解码音频段的播放时刻及未解码音频段的播放时长等(图中未全未解码音频信息中包括的全部内容)。本发明实施例中的未解码音频信息队列中同时最多存储四个未解码音频信息,其中,播放时刻越早的未解码音频段对应的未解码音频信息在未解码音频信息队列中的位置越靠近队首。

在进行播放之前,请参见图4中的s401,未解码音频信息队列中包括未解码音频信息1-未解码音频信息4,其中,未解码音频信息1位于队首,未解码音频信息4位于队尾。

例如,在未解码音频信息1中包括未解码音频段1在内存中的地址,可以根据该地址,在内存中获取未解码音频段1。

s302、判断根据未解码音频段1解码失败之后,根据未解码音频信息队列中的未解码音频信息2获取未解码音频段2,并根据未解码音频段1和未解码音频段2进行解码,得到解码音频段1。

例如,在未解码音频信息2中包括未解码音频段3在内存中的地址,可以根据该地址,在内存中获取未解码音频段2。

s303、获取解码音频段1的第一播放时长和未解码音频段1的第二播放时长。

可选的,可以通过上述公式一确定第一播放时长,本发明实施例不再进行赘述。

可选的,可以在未解码音频信息1中获取第二播放时长。

s304、根据第一播放时长和第二播放时长,确定解码音频段1对应的未解码音频段的个数n为2。

s305、在缓存中存储该个数n为2。

s306、将未解码音频信息队列中、未解码音频信息1中的播放时刻(第0ms)确定为解码音频段1的播放时刻,并在第0ms播放解码音频段1。

通过s301-s306,可以确保解码音频段1的播放时刻为正确的。

s307、在未解码音频信息队列中删除前2个未解码音频信息(未解码音频信息1和未解码音频信息2)。

可选的,在未解码音频信息队列中删除前2个未解码音频信息(未解码音频信息1和未解码音频信息2)之后,在未解码音频信息的队尾中补入两个新的未解码音频信息,即,补入未解码音频信息5和未解码音频信息6。

请参见图4中的402,未解码音频信息队列中包括未解码音频信息3-未解码音频信息6,其中,未解码音频信息3位于队首,未解码音频信息6位于队尾。

s308、在缓存中获取n为2。

s309、根据未解码音频信息队列中前2个未解码音频信息(未解码音频信息3和未解码音频信息4),获取2个未解码音频段(未解码音频段3和未解码音频段4)。

具体的,根据未解码音频信息队列中的未解码音频信息3获取未解码音频段3,根据未解码音频信息队列中的未解码音频信息4获取未解码音频段4。

s310、对未解码音频段3和未解码音频段4解码,得到解码音频段2。

s311、将未解码音频信息队列中、未解码音频信息3中的播放时刻(第20ms)确定为解码音频段2的播放时刻,并在第20ms播放解码音频段2。

通过s301-s311,可以确保解码音频段2的播放时刻为正确的。

s312、在未解码音频信息队列中删除前2个未解码音频信息(未解码音频信息3和未解码音频信息4)。

可选的,在未解码音频信息队列中删除前2个未解码音频信息(未解码音频信息3和未解码音频信息4)之后,在未解码音频信息的队尾中补入两个新的未解码音频信息,即,补入未解码音频信息7和未解码音频信息8。

请参见图4中的403,未解码音频信息队列中包括未解码音频信息5-未解码音频信息8,其中,未解码音频信息5位于队首,未解码音频信息8位于队尾。

需要说明的是,针对第二次之后的解码、播放过程,可以参见s305-s312,本发明实施例不再进行赘述。

在上述过程中,可以确定每一次解码音频段的播放时刻均为正确的,可以避免音频播放异常的问题,进而提高音频播放的可靠性。

在上述任意一个实施例的基础上,可选的,音频播放装置可以包括多个插件,并由多个插件共同实现上述方法实施例所示的技术方案。下面,通过图5,对音频播放装置包括的插件进行详细说明。

图5为本发明实施例提供的音频播放装置的结构示意图一。请参见图5,包括解复用插件501、音频框架502、音频解码插件503和音频播放插件504,其中,该任何一个插件均可以通过软件和/或硬件实现。

解复用插件501用于生成音频文件中每一个未解码音频段对应的未解码音频信息。解复用插件501还用于根据音频解码插件503的解码性能、按照一定的顺序将未解码音频信息发送给音频框架502。

音频框架502用于维护未解码音频信息队列,例如,在未解码音频信息队列中删除需要删除的未解码音频信息,在未解码音频信息队列中增加需要的未解码音频信息。

音频解码插件503用于根据未解码音频信息队列中的未解码音频信息,对相应的未解码音频段进行解码,在音频解码插件503对解码得到一个解码音频段之后,音频解码插件503向音频框架502发送通知消息,以使音频框架502在未解码音频信息队列中删除相应的未解码音频信息,音频框架502还用于确定解码音频段的播放时刻,并通知音频播放插件504在相应的播放时刻对相应的解码音频段进行播放。

需要说明的是,图5只是以示例的形式示意音频播放装置中包括的插件、及各插件的功能,当然,在实际应用过程中,可以根据实际需要确定音频播放装置中包括的插件、及各插件的功能,本发明实施例对此不作具体限定。

图6为本发明实施例提供的音频播放装置的结构示意图二。请参见图6,该装置可以包括解码模块11、第一获取模块12、确定模块13、播放模块14及删除模块15,其中,

所述解码模块11用于,对至少一个未解码音频段进行解码,得到第一解码音频段;

所述第一获取模块12用于,获取所述第一解码音频段对应的未解码音频段的个数n,所述n为大于或等于1的整数;

所述确定模块13用于,将未解码音频信息队列中、第一个未解码音频信息中的播放时刻,确定为所述第一解码音频段的第一播放时刻;

所述播放模块14用于,在所述第一播放时刻播放所述第一解码音频段,所述未解码音频信息队列中一个未解码音频信息对应一个未解码音频段;

所述删除模块15用于,在所述未解码音频信息队列中删除前n个未解码音频信息。

本发明实施例所示的音频播放装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。

在一种可能的实施方式中,所述解码模块11具体用于执行如下步骤:

步骤a、对所述未解码信息队列中、前m个未解码音频信息对应的未解码音频段进行解码;

步骤b、判断解码是否成功;若是,则执行步骤c;若否,则执行步骤d;

步骤c、将解码得到的音频段确定为所述第一解码音频段;

步骤d、则将所述m的值加1,并执行步骤a;

其中,初始时,所述m的值为1。

图7为本发明实施例提供的音频播放装置的结构示意图三。在图6所示实施例的基础上,请参见图7,所述第一获取模块12包括获取单元121和确定单元122,其中,

所述获取单元121用于,获取所述第一解码音频段的第一播放时长、及一个未解码音频段的第二播放时长;

所述确定单元122用于,根据所述第一播放时长和所述第二播放时长的比值,确定所述n。

在另一种可能的实施方式中,所述获取单元121具体用于:

获取所述第一解码音频段的音频大小、预设的音频采样位数、预设的音频声道个数及预设的音频采样率;

根据所述音频大小、所述音频采样位数、所述音频声道个数和所述音频采样率,确定所述第一播放时长。

在另一种可能的实施方式中,所述装置还包括存储模块16,其中,

所述存储模块16用于,在所述第一获取模块12获取所述第一解码音频段对应的未解码音频段的个数n之后,在缓存中存储所述n。

在另一种可能的实施方式中,所述装置还包括第二获取模块17和第三获取模块18,其中,

所述第二获取模块17用于,在所述缓存中获取所述n;

所述第三获取模块18用于,根据所述未解码音频信息队列中前n个未解码音频信息,获取n个未解码音频段;

所述解码模块还11用于,对所述n个未解码音频段进行解码,得到第二解码音频段;

所述确定模块还13用于,将未解码音频信息队列中、第一个未解码音频信息中的播放时刻,确定为所述第二解码音频段的第二播放时刻;

所述播放模块14还用于,在所述第二播放时刻播放所述第二解码音频段;

所述删除模块15还用于,在所述未解码音频信息队列中删除前n个未解码音频信息。

本发明实施例所示的音频播放装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例方案的范围。

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