音频同步播放方法、装置及系统的制作方法_2

文档序号:9688765阅读:来源:国知局
示意图;
[0020] 图3为本发明音频同步播放系统一个实施例的示意图;
[0021] 图4为本发明音频同步播放装置另一个实施例的示意图。
【具体实施方式】
[0022] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0023] 参见图1,为本发明音频同步播放一个实施例的流程图。在同步播放系统包括多个 播放设备时,可W选定其中一个作为主控设备,并且将剩余设备作为被控设备。被控设备采 用本实施例播放音频文件,可W实现被控设备与主控设备之间的同步播放,从而实现同步 播放系统不同设备的同步播放。其中,所述音频文件可W是独立的音频文件,或者也可W是 多媒体文件中的音频部分。该方法包括如下步骤:
[0024] 步骤101,计算播放音频文件产生的第一播放时延化。
[0025] 在计算第一播放时延之前,可W先判断是否符合预定调整条件,如果符合调整条 件则计算第一播放时延并执行后续的同步过程,如果不符合,则可W直接对所述解码数据 进行播放。其中所述预定调整条件可W包括:所述音频文件的播放时长达到第一预定时长 T。;前次对待播放部分进行数据添加或数据删除操作后到达第二预定时长时Τι等,其中,T。 和Τι两个常数可W取值为;Τ。= 300ms,Τι = Is。例如,当所述音频文件的播放时长达到第 一预定时长T。时,计算播放音频文件产生的第一播放时延化。
[0026] 第一播放时延化的计算公式如下,化=T-E(t)+F(t)+G(t)。在计算化时可W首 先获取T,E(t),G(t)及F(t),然后计算出化。
[0027] 其中,T为在对待播放音频片段进行解码时,音频文件当前已播放时间长度。
[0028] E(t)为音频文件播放开始后,已经累计写入被控设备混音与数字信号处理值SP, Digital Dignal Processing)硬件的数据所对应的时间长度。E(t)可通过被控设备的操作 系统API函数获得,例如,当设备的操作系统为An化oid系统时,可W通过an化oid. media. AudioTrack. getPlaybac曲eadPosition0 送一 API 函数获得。
[0029] G(t)为对待播放音频片段进行解码时,被控设备音频播放硬件的缓存数据所对应 的时间长度,G(t)不大于音频播放硬件可缓存的最大数据量所对应的时间长皿,通常为等 于。皿的大小可通过软件方法测量获得。
[0030] F(t)为对待播放音频片段进行解码时,被控设备混音与DSP处理硬件的缓存数 据所对应的时间长度,F(t)不大于混音与DSP处理硬件可缓存的最大数据量所对应的时 间长FB,通常为等于。其中,FB的大小可通过离线时延测量方法获得。例如,当设备为 手机时,可W采用如下方式测量FB ;手指用力敲击手机屏幕上播放按钮,用电脑连接麦克 风录制下手指敲击声,记录时刻ti ;手机程序接收播放按钮点击指令,记录时间t2 ;手机 程序开始音频解码播放循环,记录开始时刻t3 ;手机程序第一次输出音频信号;扬声器开 始发声,用电脑连接麦克风录制下扬声器发声信号,记录起始时刻t4 ;播放时延Delay = (t4-ti)-(t3-t2)-(t2-ti),其中可W从麦克风录制音频信号中读取,(t3-t2)从手机 程序记录中读取,(t2-ti)很小通常可W忽略不计;由于Delay = T-E(t)+FB+G(t),由此可 W计算出FB。
[0031] 其中数据大小所对应的时间长度可W采用如下公式计算;
其中,t 为时间长度,单位为ms ;D为数据大小,单位为bits ;N为声道数量;P为单位数据比特数,单 位为bits ;H采样率,单位为化。
[0032] 在此需要说明的化也可W采用其他方式计算得出,在此就不再详细说明。
[0033] 步骤102,获取主控设备播放所述音频文件的过程中已产生的第二播放时延〇2。
[0034] 第二播放时延〇2由主控设备生成,第二播放时延〇2与第一播放时延化的生成方 式相类似,在此就不再赏述。
[0035] 步骤103,计算时延差Offset,其中所述Offset = 〇1-〇2。
[0036] 计算被控设备与主控设备的时延差Offset,其中Offset =化-〇2,所述时延差即为 被控设备实际发出声音时间与主控设备之间实际发出声音时间之间的时间差。
[0037] 步骤104,当所述Offset不为0时,计算所述Offset的绝对值所对应的数据调整 量。
[0038] 如果所述Offset不为0,则说明被控设备实际发出声音时间与主控设备之间实际 发出声音时间之间存在时间差。此时,可W根据当前待播放部分的每一个音频顿对应的播 放时间,计算出与所述Offset的绝对值所对应的音频顿数量K,即所述数据调整量可W为 音频顿数量。在通常情况下,当Off set的绝对值小于预定值,例如20ms时,被控设备与主 控设备发出声音的时间差在可接受范围内,因此也可W在所述Offset的绝对值大于等于 预定值时,计算所述Offset的绝对值所对应的数据调整量。
[0039] 在实际使用中,由于音频顿所对应的播放时间可能相对较长,例如在高级音频编 码(AAC, Advanced Audio Coding)中,一个ACC音频顿所对应的播放时间通常为22. 32ms, 在同步播放要求较高的应用场景下,直接添加或删除音频顿的调整效果相对较差,无法满 足同步播放的要求,因此可W计算所述Offset的绝对值所对应的数据调整量W实现精确 调整。Offset的绝对值所对应的数据调整量可W采用前述公51
I进行计算,其 中Offset的绝对值即为公式中的t,D即为Offset的绝对值所对应的数据调整量,即所述 数据调整量也可W为比特数。在实际使用中,由于当Offset的绝对值小于20ms时,被控设 备与主控设备发出声音的时间差在可接受范围内,时间差在Offset的绝对值所对应的数 据调整量可W为一个区间范围。
[0040] 由于在实际使用中,当Off set的绝对值小于预定值,例如20ms时,被控设备与主 控设备发出声音的时间差在可接受范围内,因此Offset绝对值所对应的数据调整量可W 并不唯一。例如所述数据调整量可W为预定取值区间内的一个值,所述预定取值区间可W 由所述Offset的绝对值决定,例如,预定取值区间的上限可W为所述Offset绝对值加上所 述预定值所对应的数据量,所述预定取值区间的下限可W为所述Offset绝对值减去所述 预定值所对应的数据量。在计算所述Offset的绝对值所对应的数据调整量时,可W先根据 所述Offset的绝对值与所述预定值计算出预定取值范围,然后从所述预定取值范围内选 取一个值作为与所述Offset的绝对值所对应的数据调整量。
[0041] 步骤105,根据所述Offset的大小在所述音频文件的当前待播放部分中添加或删 除数据量为所述数据调整量的调整数据,得到与所述当前待播放部分对应的替换部分。
[0042] 若时延差Offset大于0,说明被控设备比主控设备播放慢,即被控设备比主控设 备发出声音时间晚,此时被控设备可W从当前待播放部分中删除数据量为所述数据调整量 的调整数据,例如删除K个音频顿,在执行完删除操作后,由于当前待播放部分数量变小, 播放时长缩短,而缩短时长为所述Offset,从而可W抵消所述时延差,实现被控设备与主控 设备同步发出声音。
[0043] 若时延差Offset小于0,说明被控设备比主控设备播放快,即被控设备比主控设 备发出声音时间早,此时被控设备可W在当前待播放部分中添加数据量为所述数据调整量 的调整数据,例如添加 K个静音的音频顿,在执行完添加操作后,由于当前待播放部分数量 变大,播放时长延长,而延长时长为所述Offset,从而可W抵消所述时延差,实现被控设备 与主控设备同步发出声音。
[0044] 为更精确进行调整,可W对当前待播放部分所对应的解码数据进行调整。具体来 说,首先对所述当前待播放部分进行解码生成解码数据;当所述Off set小于0时,在所述解 码数据中添加数据量为所述数据调整量的调整数据;或者,当所述Off set大于ο时,从所述 解码数据中删除数据量为所述数据调整量的调整数据,从而实现精确调整。
[0045] 由于在实际使用中,当Off set的绝对值小于预定值,例如20ms时,被控设备与主 控设备发出声音的时间差在可接受范围内,因此当Offset的绝对值小于预定值时属于可 接受范围,不需要对当前待播放部分进行调整。只有当Offset的绝对值大于预定值时,才 需要在当前待播放部分中添加或
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1