一种音频同步播放方法、装置、系统及终端转让专利

申请号 : CN201610882797.1

文献号 : CN106373600B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 林尚波

申请人 : 广东欧珀移动通信有限公司

摘要 :

本发明实施例公开了一种音频同步播放方法、装置、系统及终端;本发明实施例采用当播放完音频数据帧时,获取该音频数据帧的实际播放时长,然后,根据该音频数据帧对应的起始播放时间以及下一个待播放音频数据帧对应的起始播放时间,获取该音频数据帧对应的同步播放时长,根据该实际播放时长与该同步播放时长,获取系统时钟与参考时钟之间的时钟差,根据该时钟差调整下一个待播放音频数据帧的播放时长,以使得该下一个待播放音频数据帧的播放时长与该同步播放时长相等。该方案可以提高音频播放设备之间播放音频的同步性。

权利要求 :

1.一种音频同步播放方法,其特征在于,包括:

当播放完音频数据帧时,获取所述音频数据帧的实际播放时长;

获取所述音频数据帧对应的起始播放时间以及下一个待播放音频数据帧对应的起始播放时间之间的时间差,根据所述时间差得到所述音频数据帧对应的同步播放时长;

根据所述实际播放时长与所述同步播放时长,获取系统时钟与参考时钟之间的时钟差;

判断所述时钟差的绝对值是否在预设范围内;

若是,根据所述时钟差的绝对值确定所述下一个待播放音频数据帧中的音频采样数据的调节数量;在所述时钟差大于零时,对所述下一个待播放音频数据帧中非连续的所述调节数量对应个数的音频采样数据进行删除,以减小所述下一个待播放音频数据帧的播放时长;在所述时钟差小于零时,在下一个待播放音频数据帧中确定所述调节数量对应个数的数据插入点,根据所述下一个待播放音频数据帧中与所述数据插入点相邻的音频采样数据,获取待插入的目标音频采样数据,在所述数据插入点插入相应数量的所述目标音频采样数据,以增加所述下一个待播放音频数据帧的播放时长;进而使得所述下一个待播放音频数据帧的实际播放时长与所述同步播放时长相等。

2.一种音频同步播放装置,其特征在于,包括:

第一时长获取单元,用于当播放完音频数据帧时,获取所述音频数据帧的实际播放时长;

第二时长获取单元,用于获取所述音频数据帧对应的起始播放时间以及下一个待播放音频数据帧对应的起始播放时间之间的时间差,根据所述时间差得到所述音频数据帧对应的同步播放时长;

时钟差获取单元,用于根据所述实际播放时长与所述同步播放时长,获取系统时钟与参考时钟之间的时钟差;

判断单元,用于在时钟差获取单元获取时钟差之后,判断所述时钟差的绝对值是否在预设范围内;

时长调节单元,用于在所述判断单元判断在预设范围内时,根据所述时钟差的绝对值确定所述下一个待播放音频数据帧中的音频采样数据的调节数量;在所述时钟差大于零时,对所述下一个待播放音频数据帧中非连续的所述调节数量对应个数的音频采样数据进行删除,以减小所述下一个待播放音频数据帧的播放时长;在所述时钟差小于零时,在下一个待播放音频数据帧中确定所述调节数量对应个数的数据插入点,根据所述下一个待播放音频数据帧中与所述数据插入点相邻的音频采样数据,获取待插入的目标音频采样数据,在所述数据插入点插入相应数量的所述目标音频采样数据,以增加所述下一个待播放音频数据帧的播放时长;进而使得所述下一个待播放音频数据帧的播放时长与所述同步播放时长相等。

3.一种终端,其特征在于,包括:

存储有可执行程序代码的存储器;

与所述存储器耦合的处理器;

所述处理器调用所述存储器中存储的所述可执行程序代码,执行如权利要求1所述的方法。

4.一种音频同步播放系统,其特征在于,包括:控制设备和至少一个播放设备;所述控制设备与所述播放设备连接;所述播放设备用于执行如权利要求1所述的方法。

5.一种计算机可读存储介质,其存储用于音频同步播放的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1所述的方法。

说明书 :

一种音频同步播放方法、装置、系统及终端

技术领域

[0001] 本发明涉及同步播放技术领域,具体涉及一种音频同步播放方法、装置、系统及终端。

背景技术

[0002] 随着生活水平的提高,家庭影音设备在人们的生活中扮演着重要的角色。当前,将多个音频播放设备(例如,音箱、播放器等)以及控制设备通过有线或无线网络互相连接,组成一个音频播放系统,同步播放相同的音频如音乐,已经得到广泛的应用。
[0003] 上述音频播放系统中,每个音频播放设备都具有独立的时钟系统。各个播放设备根据其自身的时钟系统来播放音频。然而,各个音频播放设备的系统时钟并不总是同步的。各个音频播放设备彼此之间可能存在细微的时差。当多个音频播放设备播放相同的音频时,上述细微的时差会导致各个音频播放设备播放相同音频数据帧所需的播放时间不相同,由此造成音频播放设备之间播放音频的同步性比较低。

发明内容

[0004] 本发明实施例提供一种音频同步播放方法、装置、系统及终端,可以音频设备之间播放音频的同步性。
[0005] 本发明实施例提供一种音频同步播放方法,包括:
[0006] 当播放完音频数据帧时,获取所述音频数据帧的实际播放时长;
[0007] 根据所述音频数据帧对应的起始播放时间以及下一个待播放音频数据帧对应的起始播放时间,获取所述音频数据帧对应的同步播放时长;
[0008] 根据所述实际播放时长与所述同步播放时长,获取系统时钟与参考时钟之间的时钟差;
[0009] 根据所述时钟差调整下一个待播放音频数据帧的播放时长,以使得所述下一个待播放音频数据帧的播放时长与所述同步播放时长相等。
[0010] 相应地,本发明实施例还提供了一种音频同步播放装置,包括:
[0011] 第一时长获取单元,用于当播放完音频数据帧时,获取所述音频数据帧的实际播放时长;
[0012] 第二时长获取单元,用于根据所述音频数据帧对应的起始播放时间以及下一个待播放音频数据帧对应的起始播放时间,获取所述音频数据帧对应的同步播放时长;
[0013] 时钟差获取单元,用于根据所述实际播放时长与所述同步播放时长,获取系统时钟与参考时钟之间的时钟差;
[0014] 时长调节单元,用于根据所述时钟差调整下一个待播放音频数据帧的播放时长,以使得所述下一个待播放音频数据帧的播放时长与所述同步播放时长相等。
[0015] 相应地,本发明实施例还提供了一种终端,包括:
[0016] 存储有可执行程序代码的存储器;
[0017] 与所述存储器耦合的处理器;
[0018] 所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明实施例提供的任一音频同步播放方法。
[0019] 相应地,本发明实施例还提供了一种音频同步播放系统,包括:控制设备和至少一个播放设备;所述控制设备与所述播放设备连接;所述播放设备用于本发明实施例提供的任一音频同步播放方法。
[0020] 本发明实施例采用当播放完音频数据帧时,获取该音频数据帧的实际播放时长,然后,根据该音频数据帧对应的起始播放时间以及下一个待播放音频数据帧对应的起始播放时间,获取该音频数据帧对应的同步播放时长,根据该实际播放时长与该同步播放时长,获取系统时钟与参考时钟之间的时钟差,根据该时钟差调整下一个待播放音频数据帧的播放时长,以使得该下一个待播放音频数据帧的播放时长与该同步播放时长相等。该方案可以在播放设备与参考设备的时钟不同步时,将下一个待播放音频数据帧的播放时长调整至与同步播放时长相等,使得各个播放设备播放相同音频数据帧所需的播放时间相等,从而实现播放设备之间可以同步播放音频,因此,相对于现有技术而言,可以提高音频播放设备之间播放音频的同步性。

附图说明

[0021] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0022] 图1是本发明实施例一提供的音频同步播放方法的流程示意图。
[0023] 图2是本发明实施例二提供的音频同步播放方法的流程示意图。
[0024] 图3是本发明实施例三提供的第一种音频同步播放装置的结构示意图。
[0025] 图4是本发明实施例三提供的第二种音频同步播放装置的结构示意图。
[0026] 图5是本发明实施例三提供的第三种音频同步播放装置的结构示意图。
[0027] 图6是本发明实施例四提供的多媒体同步播放系统的场景示意图。
[0028] 图7是本发明实施例五提供的终端的结构示意图。

具体实施方式

[0029] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0030] 本发明的说明书和权利要求书以及上述附图中的术语“第一”、“第二”、“第三”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应当理解,这样描述的对象在适当情况下可以互换。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤的过程、方法或包含了一系列模块或单元的装置、终端、系统不必限于清楚地列出的那些步骤或模块或单元,还可以包括没有清楚地列出的步骤或模块或单元,也可以包括对于这些过程、方法、装置、终端或系统固有的其它步骤或模块或单元。
[0031] 本发明实施例提供一种音频同步播放方法、装置、系统及终端,以下将分别进行详细说明。
[0032] 实施例一
[0033] 本实施例将从音频同步播放装置的角度进行描述,该音频同步播放装置具体可以集成播放设备中,该播放设备可以为终端(智能手机、平板电脑等)、音箱等播放设备。
[0034] 一种音频同步播放方法,包括:当播放完音频数据帧时,获取该音频数据帧的实际播放时长,然后,根据该音频数据帧对应的起始播放时间以及下一个待播放音频数据帧对应的起始播放时间,获取该音频数据帧对应的同步播放时长,根据该实际播放时长与该同步播放时长,获取系统时钟与参考时钟之间的时钟差,根据该时钟差调整下一个待播放音频数据帧的播放时长,以使得该下一个待播放音频数据帧的播放时长与该同步播放时长相等。
[0035] 如图1所示,该音频同步播放方法,具体流程可以包括:
[0036] 101、当播放完音频数据帧时,获取该音频数据帧的实际播放时长。
[0037] 具体地,可以接收控制设备(如控制终端等)或者源设备(服务器等)发送的音频数据帧(即音频数据包),并缓存音频数据帧,然后,播放缓存的音频数据帧。在该控制设备可以播放音频数据,也可以不播放音频数据,在该控制设备播放音频数据时该控制设备也为播放设备。
[0038] 其中,音频数据帧可以包括:数据帧标识(序号或者编号)、数据帧的播放时间信息(如起始播放时间信息)以及音频采样数据;此时,可以根据音频数据帧中的数据帧标识、起始播放时间信息(时间戳)以及系统时钟,播放该音频数据帧内的音频采样数据。
[0039] 本实施例中音频数据帧可以由控制设备根据待播放音频数据生成并发送,也可以由各播放设备采用统一的规则对待播放音频数据进行打包处理生成。本实施例中,播放设备可以根据音频数据帧的标识如编号依次播放音频数据帧。如依次播放缓存中的音频数据帧1、音频数据帧2……音频数据帧n。
[0040] 其中,待播放音频数据的格式可以多种,比如,MP3(Moving Picture Experts Group Audio Layer III)、WMA(Windows Media Audio)等格式。
[0041] 本实施例中,在播放完每一个音频数据帧时,可以计算音频数据帧的实际播放时长,如在播放完音频数据帧n时,计算得出该音频数据帧n的播放时间长为T1。
[0042] 102、根据该音频数据帧对应的起始播放时间以及下一个待播放音频数据帧对应的起始播放时间,获取该音频数据帧对应的同步播放时长。
[0043] 具体地,获取该音频数据帧对应的起始播放时间以及下一个待播放音频数据帧对应的起始播放时间之间的时间差,根据该时间差得到音频数据帧对应的同步播放时长。该时间差可以由当前播放的音频数据帧的起始播放时间减去下一个待播放音频数据帧对应的起始播放时间得到;当然,在其他实施方式可以中,也可以由下一个待播放音频数据帧对应的起始播放时间减去由当前播放的音频数据帧的起始播放时间得到。
[0044] 比如,可以根据当前播放完的音频数据帧n的起始播放时间Tn(如时间戳Tn),以及下一个待播放音频数据帧n+1的起始播放时间Tn+1(如时间戳Tn+1),获取音频数据帧n对应的同步播放时长T2,其中,T2=Tm-Tn。
[0045] 由于音频数据帧的时间戳或者起始播放时间是基于同步参考设备的系统时钟设定的,因此,同步播放时长可以时钟同步设备(即系统时钟与同步参考设备的系统时钟同步的播放设备,或者同步参考设备自身)播放一个音频数据帧所需的时长;在同步参考设备为播放设备时,本实施例中同步播放时长可以为参考设备播放一个音频数据帧所需的时长。
[0046] 103、根据该实际播放时长与该同步播放时长,获取系统时钟与参考时钟之间的时钟差。
[0047] 其中,参考时钟为同步参考设备的系统时钟,该同步参考设备可以为控制设备,也可以为播放设备,具体地,可以根据实际需求设定。
[0048] 由于,每台播放设备所使用的晶振频率会存在细微的差异,导致各台播放设备的系统时钟频率上产生细微的差异。而音频数据的数字模拟转换(DAC)又依赖于系统时钟,那么此时各播放设备的系统时钟存在细微差异,必然会导致音频数据的DA转换速率有所差异。对于同一个音频数据帧,在各播放设备执行DA转换所需要的时间也就有差异了,导致各播放设备播放相同音频数据帧的实际播放时长也有差异(如,在同步参考设备为播放设备时,播放设备与同步参考设备播放相同音频数据帧所需的实际时长不相同);另外,本实施例各播放设备播放的音频数据帧的时间戳或者起始播放时间是以同步参考设备的系统时钟为准的,也即音频数据帧的时间戳或者起始播放时间时基于同步参考设备的系统时钟设定;因此,本实施例中音频数据帧的实际播放时长与同步播放时长之间的时间差可以反映出播放设备与同步参考设备之间的时钟差。
[0049] 也即步骤“根据该实际播放时长与该同步播放时长,获取系统时钟与参考时钟之间的时钟差”可以包括:
[0050] 将实际播放时长与同步播放时长进行比较,以得到实际播放时长与同步播放时长之间的时间差;(该时间差可以由实际播放时长减去同步播放时长得到,其他实施方式中也可以由同步播出时长减去实际播放时长得到);
[0051] 基于该时间差获取系统时钟与参考时钟之间的时钟差。
[0052] 如可以将实际播放时长与同步播放时长之间的时间差作为播放设备与同步参考设备之间的时钟差。
[0053] 比如,比较上述T1和T2,即可以得到系统时钟与参考时钟之间的时钟差异△T=T1-T2。
[0054] 104、根据该时钟差调整下一个待播放音频数据帧的播放时长,以使得该下一个待播放音频数据帧的播放时长与该同步播放时长相等。
[0055] 其中,下一个待播放音频数据帧的播放时长为实际播放时长。
[0056] 以当前播放的音频数据帧为音频数据帧n,下一个待播放音频数据帧为音频数据帧n+1为例,本实施例可以将音频数据帧n+1的播放时长(该播放时长为实际播放时长)调节至与同步播放时长T2相等;这样在播放音频数据帧n+1时其实际播放时长等于T2,其播放音频数据帧所需的实际播放时间与时钟同步播放设备(即系统时钟与参考时钟同步的播放设备,或者同步参考播放设备)播放音频数据帧所需的时间播放时间相等,从而使得播放设备之间同步播放音频。
[0057] 比如,在同步参考设备为播放设备(可以称为同步参考播放设备)时,对于一个500ms(毫秒)播放时长(即同步播放时长T2=500ms)的音频数据帧n;在某个播放设备与同步参考播放设备的时钟不同步的情况下:
[0058] 同步参考播放设备可以精准采用500ms播放完该音频数据帧n,播放设备可能采用小于或者大于500ms的时长播放完该音频数据帧n。比如,播放设备的系统时钟比同步播放参考设备的系统时钟快(即时钟差小于零,如△T<0)时,该播放设备可能498ms就播放完该音频数据帧n;播放设备的系统时钟比同步播放参考设备的系统时钟慢(即时钟差大于零,如△T>0)时,该播放设备可能需要502ms才能播完该音频数据帧n。
[0059] 为了能够使得播放设备与同步参考播放设备同步播放音频,本实施例可以在系统时钟比参考时钟快(即时钟差小于零,如△T<0)时,增加下一个待播放音频数据帧的播放时长,使其等于同步播放时长,这样在播放设备播放下一个待播放音频数据帧所需的播放时间与同步参考播放设备播放音频数据帧的所需的播放时间相等,从而达到同步播放音频的效果;如播放设备498ms就播放完该音频数据帧n时,此时,可以增加音频数据帧n+1的播放时长,使其等于500ms。
[0060] 在播放设备的系统时钟比同步参考播放设备的系统时钟慢(即时钟差大于零,如△T>0)时,可以减小下一个待播放音频数据帧的播放时长,使其等于同步播放时长500ms;这样在播放设备播放下一个待播放音频数据帧所需的播放时间与同步参考播放设备播放音频数据帧的所需的播放时间相等,从而达到同步播放音频的效果。
[0061] 如播放设备可能需要502ms才能播完该音频数据帧n,此时,可以减小音频数据帧n+1的播放时长,使其等于同步播放时长500ms。
[0062] 可选地,为了节省资源,本实施例可以在时钟误差满足一定条件时长,才调整下一个待播放音频数据帧的播放时长,比如,可以在时钟误差的绝对值不为零或者大于某个阈值(如1ms)时,才调整下一个待播放音频数据帧的播放时长。具体地,在获取时钟差之后,根据该时钟差调整下一个待播放音频数据帧的播放时长之前,本实施例音频同步播放方法还包括:
[0063] 判断该时钟差的绝对值是否在预设范围内;
[0064] 若是,则执行根据该时钟差调整下一个待播放音频数据帧的播放时长的步骤。
[0065] 其中,该预设范围可以根据实际需求设定,比如,可以为零到正无穷(即时钟差的绝对值大于零),或者1ms到正无穷(即时钟差的绝对值大于1ms),等等。此时,若时钟差的绝对值不在预设范围内,可以认为系统时钟与参考时钟同步,不需要调节播放时长。
[0066] 本实施例中,调整音频数据帧的播放时长的方式可以有多种,比如,可以通过改变音频数据帧的音频采样数据的数量来调整音频数据帧的实际播放时长;也即步骤“根据该时钟差调整下一个待播放的音频数据帧的播放时长”可以包括:
[0067] 根据该时钟差改变该下一个待播放音频数据帧中音频采样数据的数量,以调整该下一个待播放音频数据帧的播放时长。
[0068] 本实施例中音频数据帧可以包括多个音频采样数据,比如采样频率为48KHz的音频数据,1秒钟即包括48000个采样点数据,每个采样点可以用16位、24位或32位二进制数字表示。例如,一个音频数据帧可以包括4800个音频采样数据,即0.1秒的播放时长。本实施例也改变音频数据帧内的音频采样数据来调整音频数据帧的播放时长。
[0069] 具体地,可以根据时钟差确定采样数据的调节数量,然后,根据该调节数量调节下一个待播放音频数据帧中音频采样数据的数量。比如,当时钟差为2ms或者-3ms时,可以确定采样数据的调节数量为100个或者150个,那么可以将下一个待播放音频数据帧中音频采样数据的数量减少100个或者增加150个。
[0070] 本实施例中,可以基于时钟差的正负来确定减少还是增加下一个待播放音频数据帧中音频采样数据的数量。如下:
[0071] (1)时钟差大于零:
[0072] 如,当时钟差大于零时,则表明系统时钟比参考设备的系统时钟(即参考时钟)慢,此时,可以减少该下一个待播放音频数据帧中音频采样数据的数量,以减少下一个待播放音频数据帧的播放时长。具体地,可以根据时钟差确定音频采样数据的减少数量,然后,根据该减少数量减小下一个待播放音频数据帧中音频采样数据的数量。比如,当时钟差为3ms,可以确定音频采样数据的减少数量为150个,此时,可以将下一个待播放音频数据帧中音频采样数据减少150个。
[0073] 其中,减少音频采样数据的数量的方式可以采用删除数据的方式,如,对下一个待播放音频数据帧中音频采样数据进行删除,以减少该下一个待播放音频数据帧中音频采样数据的数量。如,可以随机删除下一个待播放音频数据帧中一个或者多个音频采样数据,具体删除数量可以根据时钟差确定。
[0074] 为了保证音频输出品质,在删除采样数据时,应该避免删除连续的多个采样数据,尽量分散地删除采样数据;也即,对该下一个待播放音频数据帧中非连续的音频采样数据进行删除。
[0075] (2)时钟差小于零:
[0076] 当时钟差小于零时,则表明系统时钟比参考设备的系统时钟(即参考时钟)快,此时,可以增加该下一个待播放音频数据帧中音频采样数据的数量,以增加下一个待播放音频数据帧的播放时长。具体地,可以根据时钟差确定音频采样数据的增加数量,然后,根据该增加数量增加下一个待播放音频数据帧中音频采样数据的数量。比如,当时钟差为-3ms,可以确定音频采样数据的增加数量为150个,此时,可以将下一个待播放音频数据帧中音频采样数据增加150个。
[0077] 其中,增加音频采样数据的数量的方式可以采用插入数据的方式,如,在下一个待播放音频数据帧中插入相应的数量音频采样数据,以增加音频采样数据的数量。具体地,可以在下一个待播放音频数据帧中确定数据插入点,然后,根据该数据插入点插入相应数量的音频采样数据,其中,数据插入量可以根据时钟误差确定,即上述的增加数量。
[0078] 音频采样数据的数据插入点的确定方式可以有多种,比如,随机确定等等。
[0079] 其中,插入的音频采样数据可以预先设定,也可以由播放设备自己生成。可选地,为提高音频输出品质,本实施例可以基于数据插入点相邻(插入点前和/或后)的音频采样数据来获取待插入的音频才有数据,也即步骤“根据该数据插入点插入相应数量的音频采样数据”可以包括:
[0080] 根据该下一个待播放音频数据帧中与该数据插入点相邻的音频采样数据,获取待插入的目标音频采样数据;
[0081] 根据该数据插入点插入相应数量的该目标音频采样数据。
[0082] 比如,为不影响音频播放,提高音频输出的品质,本实施例中待插入的目标音频采样数据可以和其插入点的前一个音频采样数据一样,也可以是插入点前后两个数据的平均值。
[0083] 例如,在一个音频数据帧的第100个采样数据后插入一个采样数据,该插入的采样数据,可以和第100个采样数据一样,也可以是第100和101个采样数据的平均值。
[0084] 可选地,为进一步提高音频播放的同步性,本实施例可以循环对下一个待播放音频数据帧的播放时长进行调整,如当前播放音频数据帧n时,可以调节下一个音频数据帧n+1的播放时长,在播放完音频数据帧n+1时,调节下一个音频数据帧n+2……在播放完音频数据帧n+i时,调节下一个音频数据帧n+i+1的播放时长,直到所有音频数据帧播放完毕;这样在可以保证在音频播放的过程中音频数据帧播放所需的时间与时钟同步播放设备播放音频数据帧播放所需的时间一直相同,消除了由时钟不相同带来各播放设备播放音频数据帧所需的播放时间不相同的问题,提高了音频播放的同步性。
[0085] 由上可知,本发明实施例采用当播放完音频数据帧时,获取该音频数据帧的实际播放时长,然后,根据该音频数据帧对应的起始播放时间以及下一个待播放音频数据帧对应的起始播放时间,获取该音频数据帧对应的同步播放时长,根据该实际播放时长与该同步播放时长,获取系统时钟与参考时钟之间的时钟差,根据该时钟差调整下一个待播放音频数据帧的播放时长,以使得该下一个待播放音频数据帧的播放时长与该同步播放时长相等。该方案可以在播放设备与参考设备的时钟不同步时,将下一个待播放音频数据帧的播放时长调整至与同步播放时长相等,使得各个播放设备播放相同音频数据帧所需的播放时间相等,消除了由时钟不相同带来各播放设备播放音频数据帧所需的播放时间不相同的问题,从而实现在时钟不同步的情况下播放设备之间可以同步播放音频,因此,相对于现有技术而言,可以提高音频播放设备之间播放音频的同步性。
[0086] 实施例二
[0087] 根据实施例一所描述的音频同步播放方法,以下将举例作进一步详细说明。
[0088] 在本实施例中,将以实施例一所描述的音频同步播放节装置集成在播放设备,且同步参考设备为播放设备(称为同步参考播放设备)为例进行详细描述。
[0089] 如图2所示,一种音频同步播放方法,具体流程如下:
[0090] 201、播放设备播放完音频数据帧时,获取该音频数据帧的实际播放时长。
[0091] 其中,音频数据帧可以由控制设备(如控制终端等)或者源设备(服务器等)发送的音频数据帧(即音频数据包),播放设备缓存音频数据帧,并播放。
[0092] 其中,音频数据帧可以包括:数据帧标识(序号或者编号)、数据帧的播放时间信息(如起始播放时间信息)以及音频采样数据。数据帧的起始播放时间可以基于同步参考播放设备的系统时钟设定。
[0093] 由于播放设备和同步参考播放设备之间的所使用的晶振频率会存在细微的差异,因此,播放设备与同步参考播放设备的时钟也存在差异,播放设备播放与同步参考播放设备播放相同音频数据播放所需的实际播放时长不相同。
[0094] 比如,对于播放时长为300ms的音频数据帧5来说,同步参考播放设备采用300ms即可播放完该音频数据帧5,而播放设备在播放完音频数据帧5可以所需的时长为302ms、或者297ms;即音频数据帧5的实际播放时长可能为T5=302ms、或者T5=297ms。
[0095] 202、播放设备根据该音频数据帧对应的起始播放时间以及下一个待播放音频数据帧对应的起始播放时间,获取该音频数据帧对应的同步播放时长。
[0096] 具体地,播放设备获取该音频数据帧对应的起始播放时间以及下一个待播放音频数据帧对应的起始播放时间之间的时间差,根据该时间差得到音频数据帧对应的同步播放时长。该时间差可以由当前播放的音频数据帧的起始播放时间减去下一个待播放音频数据帧对应的起始播放时间得到。
[0097] 由于数据帧的起始播放时间一般是以同步参考播放设备的系统时钟为止。因此,同步播放时长可以是同步参考播放设备播放一个音频数据帧所需的时长。
[0098] 比如,音频数据帧5的时间戳即起始播放时间为1分5秒300毫秒,下一个音频数据帧6的时间戳为1分5秒600毫秒,此时,可以得到同步播放时长T0=300ms。也就是说同步参考播放设备播放该音频数据帧5所需的播放时长为300ms。
[0099] 203、播放设备根据该实际播放时长与该同步播放时长,获取系统时钟与同步参考播放设备系统时钟之间的时钟差。
[0100] 比如,播放设备将实际播放时长与同步播放时长进行比较,以得到实际播放时长与同步播放时长之间的时间差;该时间差可以由实际播放时长减去同步播放时长得到。
[0101] 例如,音频数据帧5的时间播放时长T5=302ms,同步播放时长T0=300ms,此时,△T=T5-T0=2ms,该△T即为系统时钟与同步参考播设备系统时钟之间的时钟差。
[0102] 由于播放设备与同步参考播放设备的系统时钟存在差异,会导致播放设备播放与同步参考播放设备播放相同音频数据播放所需的实际播放时长不相同。因此,可以基于播放设备针对音频帧的实际播放时长与同步播放时长来获取播放设备与同步参考播放设备之间的时钟差异。
[0103] 204、播放设备判断该时钟差的绝对值是否在预设范围内,若是,则执行步骤205,若否,则结束流程。
[0104] 其中,该预设范围可以根据实际需求设定,比如,可以为零到正无穷(即时钟差的绝对值大于零),或者0.5ms到正无穷(即时钟差的绝对值大于0.5ms),等等。此时,若时钟差的绝对值不在预设范围内,可以认为系统时钟与参考时钟同步,不需要调节播放时长,结束流程。
[0105] 205、播放设备判断该时钟差大于零还是小于零,若大于零,则执行步骤206,若小于零,则执行步骤207。
[0106] 当时钟差大于零时,则表明播放设备的系统时钟比同步参考播放设备的系统时钟(即参考时钟)慢,此时,可以执行步骤206通过减小下一个待播放音频数据帧中音频采样数据的数量来减少下一个待播放音频数据帧的播放时长,使其与同步播放时长一致,进而达到同步播放。
[0107] 当时钟差大于零时,则表明播放设备的系统时钟比同步参考播放设备的系统时钟(即参考时钟)慢,此时,可以执行步骤207通过增加下一个待播放音频数据帧中音频采样数据的数量来增加下一个待播放音频数据帧的播放时长,使其与同步播放时长一致,进而达到同步播放。
[0108] 206、播放设备从下一个待播放音频数据帧中删除相应数量的音频采样数据,以使得下一个待播放音频数据帧的播放时长减少至与同步播放时长相等。
[0109] 具体地,播放设备可以根据时钟差确定音频采样数据的删除数量,然后,根据删除数量从下一个待播放音频数据帧中删除相应数量的音频采样数据。
[0110] 比如,当时钟差为4ms,可以根据时钟差确定音频采样数据的删除数量为250个,此时,可以从下一个待播放音频数据帧中删除250个音频采样数据。
[0111] 为了提高音频输出品质,播放设备可以从下一个待播放音频数据帧中删除相应数量的非连续的音频采样数据;比如,删除250个非连续的音频采样数据。
[0112] 207、播放设备在下一个待播放音频数据帧中插入相应数量的音频采样数据,以使得下一个待播放音频数据帧的播放时长增加至与同步播放时长相等。
[0113] 具体地,可以根据时钟差确定音频采样数据的插入数量,然后,根据该插入数量在下一个待播放音频数据帧中插入相应数量的音频采样数据。比如,当时钟差为-3ms,可以确定音频采样数据的插入数量为150个,此时,可以在下一个待播放音频数据帧中插入150个音频采样数据。
[0114] 其中,在确定插入数量之后,可以在下一个待播放音频数据帧中确定数据插入点,然后,根据该数据插入点插入相应数量的音频采样数据。
[0115] 音频采样数据的数据插入点的确定方式可以有多种,比如,随机确定等等。
[0116] 其中,插入的音频采样数据可以预先设定,也可以由播放设备自己生成。可选地,为提高音频输出品质,本实施例可以基于数据插入点相邻(插入点前和/或后)的音频采样数据来获取待插入的音频才有数据,比如,根据该下一个待播放音频数据帧中与该数据插入点相邻的音频采样数据,获取待插入的目标音频采样数据;根据该数据插入点和插入数量插入相应数量的该目标音频采样数据。
[0117] 例如,在一个音频数据帧的第200个采样数据后插入一个采样数据,该插入的采样数据,可以和第200个采样数据一样,也可以是第200和201个采样数据的平均值。
[0118] 可选地,为进一步提高音频播放的同步性,本实施例可以循环对下一个待播放音频数据帧的播放时长进行调整,如当前播放音频数据帧5时,可以调节下一个音频数据帧6的播放时长,在播放完音频数据帧6时,调节下一个音频数据帧7……在播放完音频数据帧i+j时,调节下一个音频数据帧i+j+1的播放时长,直到所有音频数据帧播放完毕;这样在可以保证在音频播放的过程中音频数据帧播放所需的时间与时钟同步播放设备播放音频数据帧播放所需的时间一直相同,消除了由时钟不相同带来各播放设备播放音频数据帧所需的播放时间不相同的问题,提高了音频播放的同步性。
[0119] 由上可知,本发明实施例采用播放设备当播放完音频数据帧时,获取该音频数据帧的实际播放时长,然后,根据该音频数据帧对应的起始播放时间以及下一个待播放音频数据帧对应的起始播放时间,获取该音频数据帧对应的同步播放时长,根据该实际播放时长与该同步播放时长,获取系统时钟与同步参考播放设备的系统时钟之间的时钟差,根据该时钟差调整下一个待播放音频数据帧的播放时长,以使得该下一个待播放音频数据帧的播放时长与该同步播放时长相等。该方案可以在播放设备与同步参考播放设备的时钟不同步时,将下一个待播放音频数据帧的播放时长调整至与同步播放时长相等,各个播放设备播放相同音频数据帧所需的播放时间相等,消除了由时钟不相同带来各播放设备播放音频数据帧所需的播放时间不相同的问题,从而实现在时钟不同步的情况下播放设备之间可以同步播放音频,因此,相对于现有技术而言,可以提高音频播放设备之间播放音频的同步性。
[0120] 实施例三
[0121] 为了更好地实施以上方法,本发明实施例还提供一种音频同步播放装置,该音频同步播放装置可以集成在播放设备中,该播放设备可以是智能手机、平板电脑、音箱等设备。
[0122] 如图3所示,音频同步播放装置300可以包括:第一时长获取单元301、第二时长获取单元302、时钟差获取单元303以及时长调节单元304,如下:
[0123] 第一时长获取单元301,用于当播放完音频数据帧时,获取该音频数据帧的实际播放时长;
[0124] 第二时长获取单元302,用于根据该音频数据帧对应的起始播放时间以及下一个待播放音频数据帧对应的起始播放时间,获取该音频数据帧对应的同步播放时长;
[0125] 时钟差获取单元303,用于根据该实际播放时长与该同步播放时长,获取系统时钟与参考时钟之间的时钟差;
[0126] 时长调节单元304,用于根据该时钟差调整下一个待播放音频数据帧的播放时长,以使得该下一个待播放音频数据帧的播放时长与该同步播放时长相等。
[0127] 可选地,为了节省资源,参考图4,本实施例音频同步播放装置300还可以包括判断单元305;
[0128] 该判断单元305,用于在时钟差获取单元303获取时钟差之后,该时长调节单元304根据该时钟差调整下一个待播放音频数据帧的播放时长之前,判断该时钟差的绝对值是否在预设范围内;
[0129] 该时长调节单元304,用于在该判断单元判断在预设范围内时,根据该时钟差调整下一个待播放音频数据帧的播放时长。
[0130] 其中,调节音频数据帧的播放时长的方式可以有多种,比如,可以通过改变音频数据帧内的音频采样数据来调节播放时长;也即时长调节单元304,可以具体用于:根据该时钟差改变该下一个待播放音频数据帧中音频采样数据的数量,以调整该下一个待播放音频数据帧的播放时长。
[0131] 比如,参考图5,时长调节单元304,可以具体包括:
[0132] 第一数量调节子单元3041,用于当该时钟差大于零时,减少该下一个待播放音频数据帧中音频采样数据的数量,以减小该下一个待播放音频数据帧的播放时长;
[0133] 第二数量调节子单元3042,用于当该时钟差小于零时,增加该下一个待播放音频数据帧中音频采样数据的数量,以增加该下一个待播放音频数据帧的播放时长。
[0134] 其中,减小音频数据帧内采样数据的数量的方式有多种,比如删除采样数据,可选地,为了提高音频数据的播放品质,该第一数量调节子单元3041,可以具体用于:对该下一个待播放音频数据帧中非连续的音频采样数据进行删除,以减少该下一个待播放音频数据帧中音频采样数据的数量。
[0135] 其中,增加音频数据帧内采样数据的数量的方式有多种,比如插入采样数据,可选地,为了提高音频数据的播放品质,该第二数量调节子单元3042,可以具体用于:
[0136] 在下一个待播放音频数据帧中确定数据插入点;
[0137] 根据该下一个待播放音频数据帧中与该数据插入点相邻的音频采样数据,获取待插入的目标音频采样数据;
[0138] 根据该数据插入点插入相应数量的该目标音频采样数据,以增加该下一个待播放音频数据帧中音频采样数据的数量。
[0139] 具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
[0140] 由上可知,本发明实施例采用第一时长获取单元301当播放完音频数据帧时,获取该音频数据帧的实际播放时长,然后,由第二时长获取单元302根据该音频数据帧对应的起始播放时间以及下一个待播放音频数据帧对应的起始播放时间,获取该音频数据帧对应的同步播放时长,由时钟差获取单元303根据该实际播放时长与该同步播放时长,获取系统时钟与参考时钟之间的时钟差,由时长调节单元304根据该时钟差调整下一个待播放音频数据帧的播放时长,以使得该下一个待播放音频数据帧的播放时长与该同步播放时长相等。该方案可以在播放设备与参考设备的时钟不同步时,将下一个待播放音频数据帧的播放时长调整至与同步播放时长相等,使得各个播放设备播放相同音频数据帧所需的播放时间相等,消除了由时钟不相同带来各播放设备播放音频数据帧所需的播放时间不相同的问题,从而实现在时钟不同步的情况下播放设备之间可以同步播放音频,因此,相对于现有技术而言,可以提高音频播放设备之间播放音频的同步性。
[0141] 实施例四
[0142] 根据实施例一和二所描述的音频同步播放方法,以下将举例作进一步详细说明。
[0143] 在本实施例中,将以实施例一、二和三所描述音频同步播放装置集成在从属设备中为例进行详细描述。
[0144] 本发明实施例提供了一种音频同步播放系统,可以包括:控制设备和至少一个播放设备;所述控制设备与所述播放设备连接(如通过网络连接);所述播放设备用于执行上述实施例提供的任一方法。
[0145] 其中,控制设备可以为主控设备,播放设备可以为从属设备。参考图6,本实施例提供了一种多媒体同步播放系统,包括:源设备10、主控设备20、至少一个从属设备30;该源设备10、主控设备20、从属设备30之间可以通过网络相互连接。
[0146] 其中,主控设备20用于控制从属设备,其可以为终端,如手机、平板电脑等,该主控设备也可以为播放设备,比如,音箱等播放设备;本实施例将以主控设备20为终端为例进行说明。
[0147] 该从属设备30可以为受控于主控设备20的播放设备,该从属设备可以为音箱、具有播放功能的终端等播放设备。
[0148] 其中,源设备10用于提供待播放的多媒体数据,其可以服务器等网络设备。
[0149] 在同步播放多媒体之前,本实施例可以从多个从属设备30中选取一个设备作为同步播放的参考设备即同步参考播放设备,在同步播放过程中,所有从属设备的时钟均将与该同步参考播放设备的系统时钟保存同步。比如,可以由主控设备20从多个从属设备30中选取一个从属设备作为同步播放的参考设备,然后,将参考设备的标识发送给各个从属设备。
[0150] 应当注意的是:当主控设备20若除分发媒体数据之外也接收自身分发的媒体数据播放时,该主控设备20也为从属设备。此时,可以选取主控设备20为同步参考播设备。
[0151] 多媒体播放的流程如下:
[0152] 源设备10向主控设备20发送多媒体数据;主控设备20对多媒体数据进行打包,得到多个媒体数据包;主控设备20向各个从属设备30发送媒体数据包;从属设备30缓存媒体数据包并播放缓存的媒体数据包。之后从属设备30执行实施例一和二所描述的音频同步播放的步骤。此处不再赘述。
[0153] 实施例五
[0154] 本发明实施例还提供一种终端,如图7所示,该终端400可以包括射频(RF,Radio Frequency)电路401、包括有一个或一个以上计算机可读存储介质的存储器402、输入单元403、显示单元404、传感器405、音频电路406、无线保真(WiFi,Wireless Fidelity)模块
407、包括有一个或者一个以上处理核心的处理器408、以及电源409等部件。本领域技术人员可以理解,图7中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0155] 射频电路401可用于收发信息,或通话过程中信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器408处理;另外,将涉及上行的数据发送给基站。通常,射频电路401包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM,Subscriber Identity Module)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,射频电路401还可以通过无线通信与网络和其他设备通信。该无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GSM,Global System of Mobile communication)、通用分组无线服务(GPRS,General Packet Radio Service)、码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband Code Division Multiple Access)、长期演进(LTE,Long Term Evolution)、电子邮件、短消息服务(SMS,Short Messaging Service)等。
[0156] 存储器402可用于存储应用程序和数据。存储器402存储的应用程序中包含有可执行程序代码。应用程序可以组成各种功能模块。处理器408通过运行存储在存储器402的应用程序,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器408和输入单元403对存储器402的访问。
[0157] 输入单元403可用于接收输入的数字、字符信息或用户特征信息(比如指纹),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元403可以包括指纹识别模组。在一些实施例中,输入单元403还可以包括触敏表面。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器408,并能接收处理器408发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元403还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
[0158] 显示单元404可用于显示由用户输入的信息或提供给用户的信息以及终端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元404可包括显示面板。可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器408以确定触摸事件的类型,随后处理器408根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图7中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。
[0159] 终端还可包括至少一种传感器405,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板的亮度,接近传感器可在终端移动到耳边时,关闭显示面板和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
[0160] 音频电路406可通过扬声器、传声器提供用户与终端之间的音频接口。音频电路406可将接收到的音频数据转换成电信号,传输到扬声器,由扬声器转换为声音信号输出;
另一方面,传声器将收集的声音信号转换为电信号,由音频电路406接收后转换为音频数据,再将音频数据输出处理器408处理后,经射频电路401以发送给比如另一终端,或者将音频数据输出至存储器402以便进一步处理。音频电路406还可能包括耳塞插孔,以提供外设耳机与终端的通信。
[0161] 无线保真(WiFi)属于短距离无线传输技术,终端通过无线保真模块407可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图7示出了无线保真模块407,但是可以理解的是,其并不属于终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
[0162] 处理器408是终端的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器402内的应用程序,以及调用存储在存储器402内的数据,执行终端的各种功能和处理数据,从而对终端进行整体监控。可选的,处理器408可包括一个或多个处理核心;优选的,处理器408可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器408中。
[0163] 终端还包括给各个部件供电的电源409(比如电池)。优选的,电源可以通过电源管理系统与处理器408逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源409还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
[0164] 尽管图7中未示出,终端还可以包括摄像头、蓝牙模块等,在此不再赘述。
[0165] 具体在本实施例中,终端中的处理器408会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行程序代码加载到存储器402中,并由处理器408来运行存储在存储器402中的应用程序,从而实现各种功能:
[0166] 当播放完音频数据帧时,获取该音频数据帧的实际播放时长,然后,根据该音频数据帧对应的起始播放时间以及下一个待播放音频数据帧对应的起始播放时间,获取该音频数据帧对应的同步播放时长,根据该实际播放时长与该同步播放时长,获取系统时钟与参考时钟之间的时钟差,根据该时钟差调整下一个待播放音频数据帧的播放时长,以使得该下一个待播放音频数据帧的播放时长与该同步播放时长相等。
[0167] 该处理器408还实现如下功能:
[0168] 在获取时钟差之后,根据该时钟差调整下一个待播放音频数据帧的播放时长之前,判断该时钟差的绝对值是否在预设范围内,若是,则执行根据该时钟差调整下一个待播放音频数据帧的播放时长的步骤。
[0169] 其中,根据该时钟差调整下一个待播放的音频数据帧的播放时长,包括:
[0170] 根据该时钟差改变该下一个待播放音频数据帧中音频采样数据的数量,以调整该下一个待播放音频数据帧的播放时长。
[0171] 根据该时钟差改变该下一个待播放音频数据帧中音频采样数据的数量,以调整该下一个待播放音频数据帧的播放时长,包括:
[0172] 当该时钟差大于零时,减少该下一个待播放音频数据帧中音频采样数据的数量,以减小该下一个待播放音频数据帧的播放时长;
[0173] 当该时钟差小于零时,增加该下一个待播放音频数据帧中音频采样数据的数量,以增加该下一个待播放音频数据帧的播放时长。
[0174] 该减少该下一个待播放音频数据帧中音频采样数据的数量,包括:
[0175] 对该下一个待播放音频数据帧中非连续的音频采样数据进行删除,以减少该下一个待播放音频数据帧中音频采样数据的数量。
[0176] 增加该下一个待播放音频数据帧中音频采样数据的数量,包括:
[0177] 在下一个待播放音频数据帧中确定数据插入点;
[0178] 根据该下一个待播放音频数据帧中与该数据插入点相邻的音频采样数据,获取待插入的目标音频采样数据;
[0179] 根据该数据插入点插入相应数量的该目标音频采样数据,以增加该下一个待播放音频数据帧中音频采样数据的数量。
[0180] 上述操作具体可参见前面的方法实施例,在此不再赘述。
[0181] 由上可知,本发明实施例提供了一种终端,该终端在播放完音频数据帧时,获取该音频数据帧的实际播放时长,然后,根据该音频数据帧对应的起始播放时间以及下一个待播放音频数据帧对应的起始播放时间,获取该音频数据帧对应的同步播放时长,根据该实际播放时长与该同步播放时长,获取系统时钟与参考时钟之间的时钟差,根据该时钟差调整下一个待播放音频数据帧的播放时长,以使得该下一个待播放音频数据帧的播放时长与该同步播放时长相等。该方案可以在播放设备与参考设备的时钟不同步时,将下一个待播放音频数据帧的播放时长调整至与同步播放时长相等,使得各个播放设备播放相同音频数据帧所需的播放时间相等,消除了由时钟不相同带来各播放设备播放音频数据帧所需的播放时间不相同的问题,从而实现在时钟不同步的情况下播放设备之间可以同步播放音频,因此,相对于现有技术而言,可以提高音频播放设备之间播放音频的同步性。
[0182] 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
[0183] 以上对本发明实施例所提供的一种音频同步播放方法、装置、系统及终端进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。