CN105448312A - 音频同步播放方法、装置及系统 - Google Patents
音频同步播放方法、装置及系统 Download PDFInfo
- Publication number
- CN105448312A CN105448312A CN201410261954.8A CN201410261954A CN105448312A CN 105448312 A CN105448312 A CN 105448312A CN 201410261954 A CN201410261954 A CN 201410261954A CN 105448312 A CN105448312 A CN 105448312A
- Authority
- CN
- China
- Prior art keywords
- data
- offset
- audio file
- played
- adjustment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/10—Indexing; Addressing; Timing or synchronising; Measuring tape travel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M19/00—Current supply arrangements for telephone systems
- H04M19/08—Current supply arrangements for telephone systems with current supply sources at the substations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4307—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
- H04N21/43076—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of the same content streams on multiple devices, e.g. when family members are watching the same movie on different devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04R—LOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
- H04R3/00—Circuits for transducers, loudspeakers or microphones
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8106—Monomedia components thereof involving special audio data, e.g. different tracks for different languages
- H04N21/8113—Monomedia components thereof involving special audio data, e.g. different tracks for different languages comprising music, e.g. song in MP3 format
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Acoustics & Sound (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明实施例公开了音频同步播放方法、装置及系统。所述方法包括:计算播放音频文件产生的第一播放时延;获取主控设备播放所述音频文件产生的第二播放时延;计算时延差;当所述时延差不为0时,计算所述时延差的绝对值所对应的数据调整量;根据所述时延差的大小在所述音频文件的当前待播放部分中添加或删除数据量为所述数据调整量的调整数据,得到与所述当前待播放部分对应的替换部分;对所述替换部分进行播放。采用本发明技术方案,可以通过添加或删除数据的方式对当前待播放部分的播放时长进行调整,实现主控设备与被控设备在播放待播放片段时同时发出声音,实现过程非常简单。
Description
技术领域
本发明涉及多媒体领域,尤其涉及音频同步播放方法、装置及系统。
背景技术
随着多媒体技术的发展,在越来越多的应用场景下需要使用多个设备构成同步播放系统进行音频同步播放,以实现多个设备同步发出声音,从而实现单个设备难以实现的功能和效果。例如,多个手机构成的同步播放系统进行音频同步播放,能够实现多声道环绕声、手机音阵等单个手机无法实现的效果。
在现有技术中,同步播放系统通常采用的音频播放方式,就是控制同步播放系统内各个设备同时播放音频文件。发明人对现有技术研究后发现,同步播放系统在播放音频文件时,通常将音频文件划分为若干个音频片段,然后逐段对音频片段进行播放。然而,对每一个音频片段的播放,都需要经过解码、混音、DSP及输出等处理过程,从开始对音频片段进行播放到实际发出声音会存在一定的时间差,该时间差即为播放时延。播放时延的大小由设备的硬件配置和软件环境决定,当不同设备之间硬件配置或软件环境不同时,播放时延的大小也不相同。
由于不同设备的播放时延不同,使得不同设备同时播放同一音频片段的时间也不同。当不同设备的硬件配置或软件环境差别较大时,实际发出声音的时间偏差也会较大。例如,HuaweiMate1手机与HuaweiHonor手机在同时开始对同一音频片段进行解码的情况下,实际发出声音的时间可能会相差130至168ms。进一步,由于在播放每一个音频片段时,不同的设备之间都会产生一个时间偏差,随着已播放音频片段数量的增加,不同设备的实际发出声音的时间偏差会逐渐积累,导致不同设备之间实际发出声音的时间不一致的情况越来越严重,实现音频同步播放非常困难。
发明内容
本发明实施例提供了音频同步播放方法、装置及系统,以解决在不同设备的播放时延不同时,音频同步播放非常困难的问题。
第一方面,本发明实施例提供了一种音频同步播放方法,由同步播放系统中的被控设备执行,所述同步播放系统包括被控设备和一个主控设备,该方法包括:计算播放音频文件产生的第一播放时延D1;获取主控设备播放所述音频文件产生的第二播放时延D2;计算时延差Offset,其中所述Offset=D1-D2;当所述Offset不为0时,计算所述Offset的绝对值所对应的数据调整量;根据所述Offset的大小在所述音频文件的当前待播放部分中添加或删除数据量为所述数据调整量的调整数据,得到与所述当前待播放部分对应的替换部分;对所述替换部分进行播放。
结合第一方面,在第一方面第一种可能的实现方式中,所述计算播放音频文件产生的第一播放时延D1包括:当所述音频文件的播放时长达到第一预定时长时,计算播放音频文件产生的第一播放时延D1;或者,当前次对待播放部分进行数据添加或数据删除操作后到达第二预定时长时,计算播放音频文件产生的第一播放时延D1。
结合第一方面或第一方面第一种可能的实现方式,在第一方面第二种可能的实现方式中,所述计算在预定时刻播放音频文件产生的第一播放时延D1包括:获取所述音频文件已播放时间长度T、所述音频文件播放开始后已经累计写入混音与DSP处理硬件的数据所对应的时间长度E(t)、混音与DSP处理硬件中缓存数据所对应的时间长度F(t)及音频播放硬件中缓存数据所对应的时间长度G(t);根据所述T、所述E(t)、所述F(t)及所述G(t)计算D1,其中D1=T-E(t)+F(t)+G(t)。
结合第一方面、第一方面第一种可能的实现方式或第一方面第二种可能的实现方式,在第一方面第三种可能的实现方式中,所述根据所述Offset的大小在所述音频文件的当前待播放部分中添加或删除数据量为所述数据调整量的调整数据包括:当所述Offset小于0时,在所述音频文件的当前待播放部分中添加数据量为所述数据调整量的调整数据;或者,当所述Offset大于0时,在所述音频文件的当前待播放部分中删除数据量为所述数据调整量的调整数据。
结合第一方面、第一方面第一种可能的实现方式或第一方面第二种可能的实现方式,在第一方面第四种可能的实现方式中,所述根据所述Offset的大小在所述音频文件的当前待播放部分中添加或删除数据量为所述数据调整量的调整数据包括:对所述当前待播放部分进行解码生成解码数据;当所述Offset小于0时,在所述解码数据中添加数据量为所述数据调整量的调整数据;或者,当所述Offset大于0时,从所述解码数据中删除数据量为所述数据调整量的调整数据。
第二方面,本发明实施例提供了一种音频同步播放装置,所述装置包括:计算单元,用于计算播放音频文件产生的第一播放时延D1;获取单元,用于获取主控设备播放所述音频文件产生的第二播放时延D2;生成单元,用于根据所述计算单元得到的D1及所述获取单元获取到的D2计算时延差Offset,其中所述Offset=D1-D2;确定单元,用于当所述生成单元生成的Offset不为0时,计算所述Offset的绝对值所对应的数据调整量;调整单元,用于根据所述Offset的大小在所述音频文件的当前待播放部分中添加或删除数据量为所述确定单元得出的所述数据调整量的调整数据,得到与所述当前待播放部分对应的替换部分;播放单元,用于对所述调整单元生成的所述替换部分进行播放。
结合第二方面,在第二方面第一种可能的实现方式中,所述计算单元包括:获取子单元,用于获取所述音频文件已播放时间长度T、所述音频文件播放开始后已经累计写入混音与DSP处理硬件的数据所对应的时间长度E(t)、所述混音与DSP处理硬件中缓存数据所对应的时间长度F(t)及音频播放硬件中缓存数据所对应的时间长度G(t);计算子单元,用于根据所述获取单元获取到的所述T、所述E(t)、所述F(t)及所述G(t)计算D1,其中D1=T-E(t)+F(t)+G(t)。
结合第二方面或第二方面第一种可能的实现方式,在第二方面第二种可能的实现方式中,所述调整单元,具体用于当所述Offset小于0时,在所述音频文件的当前待播放部分中添加数据量为所述数据调整量的调整数据;或者,当所述Offset大于0时,在所述音频文件的当前待播放部分中删除数据量为所述数据调整量的调整数据。
结合第二方面或第二方面第一种可能的实现方式,在第二方面第三种可能的实现方式中,所述调整单元包括:解码子单元,用于对所述当前待播放部分进行解码生成解码数据;调整子单元,用于当所述Offset小于0时,在所述解码数据中添加数据量为所述数据调整量的调整数据;当所述Offset大于0时,从所述解码数据中删除数据量为所述数据调整量的调整数据。
第三方面,本发明实施例提供了一种音频同步播放系统,所述系统包括:主控设备与被控设备,所述主控设备,用于计算所述主控设备播放所述音频文件产生的第二播放时延D2;所述被控设备,用于在计算播放音频文件产生的第一播放时延D1;获取所述D2;计算时延差Offset,其中所述Offset=D1-D2;当所述Offset不为0时,计算所述Offset的绝对值所对应的数据调整量;根据所述Offset的大小在所述音频文件的当前待播放部分中添加或删除数据量为所述数据调整量的调整数据,得到与所述当前待播放部分对应的替换部分;对所述替换部分进行播放。
本发明实施例中,计算播放音频文件产生的第一播放时延D1;获取主控设备播放所述音频文件产生的第二播放时延D2;计算时延差Offset,其中所述Offset=D1-D2;当所述Offset不为0时,计算所述Offset的绝对值所对应的数据调整量;根据所述Offset的大小在所述音频文件的当前待播放部分中添加或删除数据量为所述数据调整量的调整数据,得到与所述当前待播放部分对应的替换部分;对所述替换部分进行播放。采用本发明技术方案,被控设备在对当前待播放部分进行播放时,可以通过添加或删除数据的方式对当前待播放部分的播放时长进行调整,从而消除被控设备与主控设备之间已经产生的出声时间偏差,实现主控设备与被控设备在播放待播放片段时同时发出声音,实现主控设备与被控设备对待播放文件的同步播放,实现过程非常简单。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明音频同步播放方法一个实施例的流程图;
图2为本发明音频同步播放装置一个实施例的示意图;
图3为本发明音频同步播放系统一个实施例的示意图;
图4为本发明音频同步播放装置另一个实施例的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,为本发明音频同步播放一个实施例的流程图。在同步播放系统包括多个播放设备时,可以选定其中一个作为主控设备,并且将剩余设备作为被控设备。被控设备采用本实施例播放音频文件,可以实现被控设备与主控设备之间的同步播放,从而实现同步播放系统不同设备的同步播放。其中,所述音频文件可以是独立的音频文件,或者也可以是多媒体文件中的音频部分。该方法包括如下步骤:
步骤101,计算播放音频文件产生的第一播放时延D1。
在计算第一播放时延之前,可以先判断是否符合预定调整条件,如果符合调整条件则计算第一播放时延并执行后续的同步过程,如果不符合,则可以直接对所述解码数据进行播放。其中所述预定调整条件可以包括:所述音频文件的播放时长达到第一预定时长T0;前次对待播放部分进行数据添加或数据删除操作后到达第二预定时长时T1等,其中,T0和T1两个常数可以取值为:T0=300ms,T1=1s。例如,当所述音频文件的播放时长达到第一预定时长T0时,计算播放音频文件产生的第一播放时延D1。
第一播放时延D1的计算公式如下,D1=T-E(t)+F(t)+G(t)。在计算D1时可以首先获取T,E(t),G(t)及F(t),然后计算出D1。
其中,T为在对待播放音频片段进行解码时,音频文件当前已播放时间长度。
E(t)为音频文件播放开始后,已经累计写入被控设备混音与数字信号处理(DSP,DigitalDignalProcessing)硬件的数据所对应的时间长度。E(t)可通过被控设备的操作系统API函数获得,例如,当设备的操作系统为Android系统时,可以通过android.media.AudioTrack.getPlaybackHeadPosition()这一API函数获得。
G(t)为对待播放音频片段进行解码时,被控设备音频播放硬件的缓存数据所对应的时间长度,G(t)不大于音频播放硬件可缓存的最大数据量所对应的时间长HB,通常为等于。HB的大小可通过软件方法测量获得。
F(t)为对待播放音频片段进行解码时,被控设备混音与DSP处理硬件的缓存数据所对应的时间长度,F(t)不大于混音与DSP处理硬件可缓存的最大数据量所对应的时间长FB,通常为等于。其中,FB的大小可通过离线时延测量方法获得。例如,当设备为手机时,可以采用如下方式测量FB:手指用力敲击手机屏幕上播放按钮,用电脑连接麦克风录制下手指敲击声,记录时刻t1;手机程序接收播放按钮点击指令,记录时间t2;手机程序开始音频解码播放循环,记录开始时刻t3;手机程序第一次输出音频信号;扬声器开始发声,用电脑连接麦克风录制下扬声器发声信号,记录起始时刻t4;播放时延Delay=(t4-t1)-(t3-t2)-(t2-t1),其中(t4-t1)可以从麦克风录制音频信号中读取,(t3-t2)从手机程序记录中读取,(t2-t1)很小通常可以忽略不计;由于Delay=T-E(t)+FB+G(t),由此可以计算出FB。
其中数据大小所对应的时间长度可以采用如下公式计算:其中,t为时间长度,单位为ms;D为数据大小,单位为bits;N为声道数量;P为单位数据比特数,单位为bits;H采样率,单位为Hz。
在此需要说明的D1也可以采用其他方式计算得出,在此就不再详细说明。
步骤102,获取主控设备播放所述音频文件的过程中已产生的第二播放时延D2。
第二播放时延D2由主控设备生成,第二播放时延D2与第一播放时延D1的生成方式相类似,在此就不再赘述。
步骤103,计算时延差Offset,其中所述Offset=D1-D2。
计算被控设备与主控设备的时延差Offset,其中Offset=D1-D2,所述时延差即为被控设备实际发出声音时间与主控设备之间实际发出声音时间之间的时间差。
步骤104,当所述Offset不为0时,计算所述Offset的绝对值所对应的数据调整量。
如果所述Offset不为0,则说明被控设备实际发出声音时间与主控设备之间实际发出声音时间之间存在时间差。此时,可以根据当前待播放部分的每一个音频帧对应的播放时间,计算出与所述Offset的绝对值所对应的音频帧数量K,即所述数据调整量可以为音频帧数量。在通常情况下,当Offset的绝对值小于预定值,例如20ms时,被控设备与主控设备发出声音的时间差在可接受范围内,因此也可以在所述Offset的绝对值大于等于预定值时,计算所述Offset的绝对值所对应的数据调整量。
在实际使用中,由于音频帧所对应的播放时间可能相对较长,例如在高级音频编码(AAC,AdvancedAudioCoding)中,一个ACC音频帧所对应的播放时间通常为22.32ms,在同步播放要求较高的应用场景下,直接添加或删除音频帧的调整效果相对较差,无法满足同步播放的要求,因此可以计算所述Offset的绝对值所对应的数据调整量以实现精确调整。Offset的绝对值所对应的数据调整量可以采用前述公式进行计算,其中Offset的绝对值即为公式中的t,D即为Offset的绝对值所对应的数据调整量,即所述数据调整量也可以为比特数。在实际使用中,由于当Offset的绝对值小于20ms时,被控设备与主控设备发出声音的时间差在可接受范围内,时间差在Offset的绝对值所对应的数据调整量可以为一个区间范围。
由于在实际使用中,当Offset的绝对值小于预定值,例如20ms时,被控设备与主控设备发出声音的时间差在可接受范围内,因此Offset绝对值所对应的数据调整量可以并不唯一。例如所述数据调整量可以为预定取值区间内的一个值,所述预定取值区间可以由所述Offset的绝对值决定,例如,预定取值区间的上限可以为所述Offset绝对值加上所述预定值所对应的数据量,所述预定取值区间的下限可以为所述Offset绝对值减去所述预定值所对应的数据量。在计算所述Offset的绝对值所对应的数据调整量时,可以先根据所述Offset的绝对值与所述预定值计算出预定取值范围,然后从所述预定取值范围内选取一个值作为与所述Offset的绝对值所对应的数据调整量。
步骤105,根据所述Offset的大小在所述音频文件的当前待播放部分中添加或删除数据量为所述数据调整量的调整数据,得到与所述当前待播放部分对应的替换部分。
若时延差Offset大于0,说明被控设备比主控设备播放慢,即被控设备比主控设备发出声音时间晚,此时被控设备可以从当前待播放部分中删除数据量为所述数据调整量的调整数据,例如删除K个音频帧,在执行完删除操作后,由于当前待播放部分数量变小,播放时长缩短,而缩短时长为所述Offset,从而可以抵消所述时延差,实现被控设备与主控设备同步发出声音。
若时延差Offset小于0,说明被控设备比主控设备播放快,即被控设备比主控设备发出声音时间早,此时被控设备可以在当前待播放部分中添加数据量为所述数据调整量的调整数据,例如添加K个静音的音频帧,在执行完添加操作后,由于当前待播放部分数量变大,播放时长延长,而延长时长为所述Offset,从而可以抵消所述时延差,实现被控设备与主控设备同步发出声音。
为更精确进行调整,可以对当前待播放部分所对应的解码数据进行调整。具体来说,首先对所述当前待播放部分进行解码生成解码数据;当所述Offset小于0时,在所述解码数据中添加数据量为所述数据调整量的调整数据;或者,当所述Offset大于0时,从所述解码数据中删除数据量为所述数据调整量的调整数据,从而实现精确调整。
由于在实际使用中,当Offset的绝对值小于预定值,例如20ms时,被控设备与主控设备发出声音的时间差在可接受范围内,因此当Offset的绝对值小于预定值时属于可接受范围,不需要对当前待播放部分进行调整。只有当Offset的绝对值大于预定值时,才需要在当前待播放部分中添加或删除调整数据。当有多个从设备时,不同的设备中可能有些超前于主控设备发出声音,有些滞后于主控设备发出声音,为使各个被控设备发出声音的时间差在可接受范围内,可以在Offset的绝对值大于预定值一半,例如10ms时,在当前待播放部分中添加或删除调整数据。
步骤106,对所述替换部分进行播放。
所述播放包括对当前待播放部分进行数据解码、混音与DSP处理及声音播放等播放步骤。如果对当前待播放部分的调整采用的是对解码数据进行调整的方式,那么所述播放可以只包括混音与DSP处理及声音播放等播放步骤。对所述替换部分进行播放的具体过程在此就不再赘述。
从上述实施例可以看出,计算播放音频文件产生的第一播放时延D1;获取主控设备播放所述音频文件产生的第二播放时延D2;计算时延差Offset,其中所述Offset=D1-D2;当所述Offset不为0时,计算所述Offset的绝对值所对应的数据调整量;根据所述Offset的大小在所述音频文件的当前待播放部分中添加或删除数据量为所述数据调整量的调整数据,得到与所述当前待播放部分对应的替换部分;对所述替换部分进行播放。采用本实施例,被控设备在对当前待播放部分进行播放时,可以通过添加或删除数据的方式对当前待播放部分的播放时长进行调整,从而消除被控设备与主控设备之间已经产生的出声时间偏差,实现主控设备与被控设备在播放待播放片段时同时发出声音,实现主控设备与被控设备对待播放文件的同步播放,实现过程非常简单。
参见图2,为本发明音频同步播放装置一个实施例的示意图。
如图2所示,该装置包括:计算单元201,获取单元202,生成单元203,确定单元204,调整单元205,播放单元206。
其中,所述计算单元201,用于计算播放音频文件产生的第一播放时延D1。
所述计算单元201可以包括:获取子单元,用于获取所述音频文件已播放时间长度T、所述音频文件播放开始后已经累计写入混音与DSP处理硬件的数据所对应的时间长度E(t)、所述混音与DSP处理硬件中缓存数据所对应的时间长度F(t)及音频播放硬件中缓存数据所对应的时间长度G(t);计算子单元,用于根据所述获取子单元获取到的所述T、所述E(t)、所述F(t)及所述G(t)计算D1,其中D1=T-E(t)+F(t)+G(t)。
所述获取单元202,用于获取主控设备播放所述音频文件产生的第二播放时延D2。
所述生成单元203,用于根据所述计算单元201得到的D1及所述获取单元202获取到的D2计算时延差Offset,其中所述Offset=D1-D2。
所述确定单元204,用于当所述生成单元203生成的Offset不为0时,计算所述Offset的绝对值所对应的数据调整量。
所述调整单元205,用于根据所述Offset的大小在所述音频文件的当前待播放部分中添加或删除数据量为所述确定单元204得出的所述数据调整量的调整数据,得到与所述当前待播放部分对应的替换部分。
具体来说,所述调整单元205可以用于:当所述Offset小于0时,在所述音频文件的当前待播放部分中添加数据量为所述数据调整量的调整数据;或者,当所述Offset大于0时,在所述音频文件的当前待播放部分中删除数据量为所述数据调整量的调整数据。
或者,所述调整单元205可以包括:解码子单元,用于对所述当前待播放部分进行解码生成解码数据;调整子单元,用于当所述Offset小于0时,在所述解码数据中添加数据量为所述数据调整量的调整数据;当所述Offset大于0时,从所述解码数据中删除数据量为所述数据调整量的调整数据。
所述播放单元206,用于对所述调整单元205生成的所述替换部分进行播放。
从上述实施例可以看出,被控设备在对当前待播放部分进行播放时,可以通过添加或删除数据的方式对当前待播放部分的播放时长进行调整,从而消除被控设备与主控设备之间已经产生的出声时间偏差,实现主控设备与被控设备在播放待播放片段时同时发出声音,实现主控设备与被控设备对待播放文件的同步播放,实现过程非常简单。
与同步播放方法及同步播放装置相对应,本发明实施例还提供了一种同步播放系统。
参见图3,为本发明同步播放系统一个实施例的示意图。
该系统包括:主控设备301与被控设备302。
其中,所述主控设备301,用于计算所述主控设备播放所述音频文件产生的第二播放时延D2。
所述被控设备302,用于在计算播放音频文件产生的第一播放时延D1;获取所述D2;计算时延差Offset,其中所述Offset=D1-D2;当所述Offset不为0时,计算所述Offset的绝对值所对应的数据调整量;根据所述Offset的大小在所述音频文件的当前待播放部分中添加或删除数据量为所述数据调整量的调整数据,得到与所述当前待播放部分对应的替换部分;对所述替换部分进行播放。
所述被控设备302,还用于当所述音频文件的播放时长达到第一预定时长时,计算播放音频文件产生的第一播放时延D1;或者,当前次对待播放部分进行数据添加或数据删除操作后到达第二预定时长时,计算播放音频文件产生的第一播放时延D1。
所述被控设备302,还用于获取所述音频文件已播放时间长度T、所述音频文件播放开始后已经累计写入混音与DSP处理硬件的数据所对应的时间长度E(t)、混音与DSP处理硬件中缓存数据所对应的时间长度F(t)及音频播放硬件中缓存数据所对应的时间长度G(t);根据所述T、所述E(t)、所述F(t)及所述G(t)计算D1,其中D1=T-E(t)+F(t)+G(t)。
所述被控设备302,还用于当所述Offset小于0时,在所述音频文件的当前待播放部分中添加数据量为所述数据调整量的调整数据;或者,当所述Offset大于0时,在所述音频文件的当前待播放部分中删除数据量为所述数据调整量的调整数据。
所述被控设备302,还用于对所述当前待播放部分进行解码生成解码数据;当所述Offset小于0时,在所述解码数据中添加数据量为所述数据调整量的调整数据;或者,当所述Offset大于0时,从所述解码数据中删除数据量为所述数据调整量的调整数据。
从上述实施例可以看出,被控设备可以对解码数据进行调整,消除被控设备与主控设备之间已经产生的出声时间偏差,实现主控设备与被控设备在播放待播放片段时同时发出声音,从而实现主控设备与被控设备对待播放文件的同步播放。在不同的设备的播放时延不同时,可以非常简单的实现音频同步播放。
参见图4,为本发明音频同步播放装置另一个实施例的示意图。
如图4所示,所述音频同步播放装置包括处理器401,存储器402,通信接口403,所述处理器401、所述存储器402与所述通信接口403之间通过总线404连接。所述音频同步播放装置还可以包括混音与DSP处理硬件及音频播放硬件。
其中,所述总线404可以是外设部件互连标准(PeripheralComponentInterconnect,简称PCI)总线或扩展工业标准结构(ExtendedIndustryStandardArchitecture,简称EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
所述存储器402用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器402可能包含随机存取存储器(RandomAccessMemory,简称RAM)存储器,也可能还包括非易失性存储器(Non-VolatileMemory),例如至少一个磁盘存储器。
所述处理器401执行所述存储器402存放的程序,用于:计算播放音频文件产生的第一播放时延D1;通过通信接口403获取主控设备播放所述音频文件产生的第二播放时延D2;计算时延差Offset,其中所述Offset=D1-D2;当所述Offset不为0时,计算所述Offset的绝对值所对应的数据调整量;根据所述Offset的大小在所述音频文件的当前待播放部分中添加或删除数据量为所述数据调整量的调整数据,得到与所述当前待播放部分对应的替换部分;对所述替换部分进行播放。
所述处理器401,还用于当所述音频文件的播放时长达到第一预定时长时,计算播放音频文件产生的第一播放时延D1;或者,当前次对待播放部分进行数据添加或数据删除操作后到达第二预定时长时,计算播放音频文件产生的第一播放时延D1。
所述处理器401,还用获取所述音频文件已播放时间长度T、所述音频文件播放开始后已经累计写入混音与DSP处理硬件的数据所对应的时间长度E(t)、混音与与DSP处理硬件中缓存数据所对应的时间长度F(t)及音频播放硬件中缓存数据所对应的时间长度G(t);根据所述T、所述E(t)、所述F(t)及所述G(t)计算D1,其中D1=T-E(t)+F(t)+G(t)。
所述处理器401,还用于当所述Offset小于0时,在所述音频文件的当前待播放部分中添加数据量为所述数据调整量的调整数据;或者,当所述Offset大于0时,在所述音频文件的当前待播放部分中删除数据量为所述数据调整量的调整数据。
所述处理器401,还用于对所述当前待播放部分进行解码生成解码数据;当所述Offset小于0时,在所述解码数据中添加数据量为所述数据调整量的调整数据;或者,当所述Offset大于0时,从所述解码数据中删除数据量为所述数据调整量的调整数据。
从上述实施例可以看出,被控设备在对当前待播放部分进行播放时,可以通过添加或删除数据的方式对当前待播放部分的播放时长进行调整,从而消除被控设备与主控设备之间已经产生的出声时间偏差,实现主控设备与被控设备在播放待播放片段时同时发出声音,实现主控设备与被控设备对待播放文件的同步播放,实现过程非常简单。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置及系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种音频同步播放方法,其特征在于,由同步播放系统中的被控设备执行,所述同步播放系统包括被控设备和一个主控设备,所述方法包括:
计算播放音频文件产生的第一播放时延D1;
获取主控设备播放所述音频文件产生的第二播放时延D2;
计算时延差Offset,其中所述Offset=D1-D2;
当所述Offset不为0时,计算所述Offset的绝对值所对应的数据调整量;
根据所述Offset的大小在所述音频文件的当前待播放部分中添加或删除数据量为所述数据调整量的调整数据,得到与所述当前待播放部分对应的替换部分;
对所述替换部分进行播放。
2.如权利要求1所述的方法,其特征在于,所述计算播放音频文件产生的第一播放时延D1包括:
当所述音频文件的播放时长达到第一预定时长时,计算播放音频文件产生的第一播放时延D1;或者,
当前次对待播放部分进行数据添加或数据删除操作后到达第二预定时长时,计算播放音频文件产生的第一播放时延D1。
3.如权利要求1或2所述的方法,其特征在于,所述计算在预定时刻播放音频文件产生的第一播放时延D1包括:
获取所述音频文件已播放时间长度T、所述音频文件播放开始后已经累计写入混音与DSP处理硬件的数据所对应的时间长度E(t)、混音与DSP处理硬件中缓存数据所对应的时间长度F(t)及音频播放硬件中缓存数据所对应的时间长度G(t);
根据所述T、所述E(t)、所述F(t)及所述G(t)计算D1,其中D1=T-E(t)+F(t)+G(t)。
4.如权利要求1至3任一权利要求所述的方法,其特征在于,所述根据所述Offset的大小在所述音频文件的当前待播放部分中添加或删除数据量为所述数据调整量的调整数据包括:
当所述Offset小于0时,在所述音频文件的当前待播放部分中添加数据量为所述数据调整量的调整数据;或者,当所述Offset大于0时,在所述音频文件的当前待播放部分中删除数据量为所述数据调整量的调整数据。
5.如权利要求1至3任一权利要求所述的方法,其特征在于,所述根据所述Offset的大小在所述音频文件的当前待播放部分中添加或删除数据量为所述数据调整量的调整数据包括:
对所述当前待播放部分进行解码生成解码数据;
当所述Offset小于0时,在所述解码数据中添加数据量为所述数据调整量的调整数据;或者,当所述Offset大于0时,从所述解码数据中删除数据量为所述数据调整量的调整数据。
6.一种音频同步播放装置,其特征在于,所述装置包括:
计算单元,用于计算播放音频文件产生的第一播放时延D1;
获取单元,用于获取主控设备播放所述音频文件产生的第二播放时延D2;
生成单元,用于根据所述计算单元得到的D1及所述获取单元获取到的D2计算时延差Offset,其中所述Offset=D1-D2;
确定单元,用于当所述生成单元生成的Offset不为0时,计算所述Offset的绝对值所对应的数据调整量;
调整单元,用于根据所述Offset的大小在所述音频文件的当前待播放部分中添加或删除数据量为所述确定单元得出的所述数据调整量的调整数据,得到与所述当前待播放部分对应的替换部分;
播放单元,用于对所述调整单元生成的所述替换部分进行播放。
7.如权利要求6所述的装置,其特征在于,所述计算单元包括:
获取子单元,用于获取所述音频文件已播放时间长度T、所述音频文件播放开始后已经累计写入混音与DSP处理硬件的数据所对应的时间长度E(t)、所述混音与DSP处理硬件中缓存数据所对应的时间长度F(t)及音频播放硬件中缓存数据所对应的时间长度G(t);
计算子单元,用于根据所述获取子单元获取到的所述T、所述E(t)、所述F(t)及所述G(t)计算D1,其中D1=T-E(t)+F(t)+G(t)。
8.如权利要求6或7所述的装置,其特征在于,
所述调整单元,具体用于当所述Offset小于0时,在所述音频文件的当前待播放部分中添加数据量为所述数据调整量的调整数据;或者,当所述Offset大于0时,在所述音频文件的当前待播放部分中删除数据量为所述数据调整量的调整数据。
9.如权利要求6或7所述的装置,其特征在于,所述调整单元包括:
解码子单元,用于对所述当前待播放部分进行解码生成解码数据;
调整子单元,用于当所述Offset小于0时,在所述解码数据中添加数据量为所述数据调整量的调整数据;当所述Offset大于0时,从所述解码数据中删除数据量为所述数据调整量的调整数据。
10.一种音频同步播放设备,其特征在于,所述系统包括:主控设备与被控设备,
所述主控设备,用于计算所述主控设备播放所述音频文件产生的第二播放时延D2;
所述被控设备,用于在计算播放音频文件产生的第一播放时延D1;获取所述D2;计算时延差Offset,其中所述Offset=D1-D2;当所述Offset不为0时,计算所述Offset的绝对值所对应的数据调整量;根据所述Offset的大小在所述音频文件的当前待播放部分中添加或删除数据量为所述数据调整量的调整数据,得到与所述当前待播放部分对应的替换部分;对所述替换部分进行播放。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410261954.8A CN105448312B (zh) | 2014-06-12 | 2014-06-12 | 音频同步播放方法、装置及系统 |
EP15166836.5A EP2955713A1 (en) | 2014-06-12 | 2015-05-07 | Synchronous audio playback method, apparatus and system |
KR1020150073742A KR101658316B1 (ko) | 2014-06-12 | 2015-05-27 | 동기 오디오 재생 방법 및 장치 |
US14/729,355 US10180981B2 (en) | 2014-06-12 | 2015-06-03 | Synchronous audio playback method, apparatus and system |
JP2015119576A JP6141358B2 (ja) | 2014-06-12 | 2015-06-12 | 同期オーディオ再生の方法、装置、およびシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410261954.8A CN105448312B (zh) | 2014-06-12 | 2014-06-12 | 音频同步播放方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105448312A true CN105448312A (zh) | 2016-03-30 |
CN105448312B CN105448312B (zh) | 2019-02-19 |
Family
ID=53434191
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410261954.8A Active CN105448312B (zh) | 2014-06-12 | 2014-06-12 | 音频同步播放方法、装置及系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10180981B2 (zh) |
EP (1) | EP2955713A1 (zh) |
JP (1) | JP6141358B2 (zh) |
KR (1) | KR101658316B1 (zh) |
CN (1) | CN105448312B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106373600A (zh) * | 2016-10-08 | 2017-02-01 | 广东欧珀移动通信有限公司 | 一种音频同步播放方法、装置、系统及终端 |
CN108170398A (zh) * | 2016-12-07 | 2018-06-15 | 博通集成电路(上海)股份有限公司 | 用于同步扬声器的装置和方法 |
CN109521988A (zh) * | 2017-09-18 | 2019-03-26 | 炬芯(珠海)科技有限公司 | 一种音频播放同步方法及装置 |
CN109688528A (zh) * | 2018-12-27 | 2019-04-26 | 安克创新科技股份有限公司 | 音频设备及信号延迟的测试方法、系统以及存储介质 |
CN111556467A (zh) * | 2020-03-31 | 2020-08-18 | 惠州市德赛西威汽车电子股份有限公司 | 一种手机互联音频播放处理方法 |
CN113436639A (zh) * | 2021-08-26 | 2021-09-24 | 北京百瑞互联技术有限公司 | 一种音频流补偿方法、装置、存储介质及设备 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106231108B (zh) * | 2016-08-10 | 2019-10-29 | Tcl移动通信科技(宁波)有限公司 | 一种移动终端音量控制方法及系统 |
KR20180068069A (ko) * | 2016-12-13 | 2018-06-21 | 삼성전자주식회사 | 전자 장치 및 이의 제어 방법 |
CN109600650B (zh) * | 2018-08-01 | 2020-06-19 | 北京微播视界科技有限公司 | 用于处理数据的方法和装置 |
CN112004132B (zh) * | 2020-09-02 | 2022-10-21 | 北京猿力未来科技有限公司 | 一种视频同步播放方法及装置 |
CN112073890B (zh) * | 2020-09-11 | 2022-08-02 | 成都极米科技股份有限公司 | 音频数据处理方法、装置和终端设备 |
CN112423105B (zh) * | 2020-10-27 | 2024-03-15 | 深圳Tcl新技术有限公司 | 数据传输方法、设备及介质 |
CN113038224B (zh) | 2021-03-26 | 2023-03-24 | 北京小米移动软件有限公司 | 音画同步方法及装置 |
CN115691516B (zh) * | 2022-11-02 | 2023-09-05 | 广东保伦电子股份有限公司 | 一种低延迟音频矩阵配置方法及服务器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1742492A (zh) * | 2003-02-14 | 2006-03-01 | 汤姆森特许公司 | 媒体内容的基于音频和视频的媒体服务的自动同步 |
WO2008011230A3 (en) * | 2006-07-21 | 2008-04-03 | Motorola Inc | Multi-device coordinated audio playback |
US20090290064A1 (en) * | 2008-05-23 | 2009-11-26 | Yamaha Corporation | AV System |
CN102301748A (zh) * | 2009-05-07 | 2011-12-28 | 华为技术有限公司 | 检测信号延迟的方法、检测装置及编码器 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7039193B2 (en) * | 2000-10-13 | 2006-05-02 | America Online, Inc. | Automatic microphone detection |
US20070087686A1 (en) * | 2005-10-18 | 2007-04-19 | Nokia Corporation | Audio playback device and method of its operation |
US8374365B2 (en) * | 2006-05-17 | 2013-02-12 | Creative Technology Ltd | Spatial audio analysis and synthesis for binaural reproduction and format conversion |
US8379868B2 (en) * | 2006-05-17 | 2013-02-19 | Creative Technology Ltd | Spatial audio coding based on universal spatial cues |
JP4360400B2 (ja) * | 2006-12-05 | 2009-11-11 | セイコーエプソン株式会社 | コンテンツ再生システムおよびこれに用いられる再生装置、並びにコンテンツ再生方法 |
EP2517478B1 (en) * | 2009-12-24 | 2017-11-01 | Nokia Technologies Oy | An apparatus |
US8855101B2 (en) * | 2010-03-09 | 2014-10-07 | The Nielsen Company (Us), Llc | Methods, systems, and apparatus to synchronize actions of audio source monitors |
US9501100B2 (en) * | 2010-09-30 | 2016-11-22 | Apple Inc. | Communicating sensor data between electronic devices |
US20130066451A1 (en) * | 2011-09-14 | 2013-03-14 | Aravind Na Ganesan | System and method for mitigating frequency mismatch in a receiver system |
FR2996094B1 (fr) * | 2012-09-27 | 2014-10-17 | Sonic Emotion Labs | Procede et systeme de restitution d'un signal audio |
EP4120699A1 (en) * | 2013-09-17 | 2023-01-18 | Wilus Institute of Standards and Technology Inc. | Method and apparatus for processing multimedia signals |
CN104467928B (zh) | 2013-09-18 | 2018-08-14 | 华为技术有限公司 | 一种终端设备之间协作的方法和设备 |
-
2014
- 2014-06-12 CN CN201410261954.8A patent/CN105448312B/zh active Active
-
2015
- 2015-05-07 EP EP15166836.5A patent/EP2955713A1/en not_active Ceased
- 2015-05-27 KR KR1020150073742A patent/KR101658316B1/ko active IP Right Grant
- 2015-06-03 US US14/729,355 patent/US10180981B2/en active Active
- 2015-06-12 JP JP2015119576A patent/JP6141358B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1742492A (zh) * | 2003-02-14 | 2006-03-01 | 汤姆森特许公司 | 媒体内容的基于音频和视频的媒体服务的自动同步 |
WO2008011230A3 (en) * | 2006-07-21 | 2008-04-03 | Motorola Inc | Multi-device coordinated audio playback |
US20090290064A1 (en) * | 2008-05-23 | 2009-11-26 | Yamaha Corporation | AV System |
CN102301748A (zh) * | 2009-05-07 | 2011-12-28 | 华为技术有限公司 | 检测信号延迟的方法、检测装置及编码器 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106373600A (zh) * | 2016-10-08 | 2017-02-01 | 广东欧珀移动通信有限公司 | 一种音频同步播放方法、装置、系统及终端 |
CN106373600B (zh) * | 2016-10-08 | 2018-03-02 | 广东欧珀移动通信有限公司 | 一种音频同步播放方法、装置、系统及终端 |
CN108170398A (zh) * | 2016-12-07 | 2018-06-15 | 博通集成电路(上海)股份有限公司 | 用于同步扬声器的装置和方法 |
CN108170398B (zh) * | 2016-12-07 | 2021-05-18 | 博通集成电路(上海)股份有限公司 | 用于同步扬声器的装置和方法 |
CN109521988A (zh) * | 2017-09-18 | 2019-03-26 | 炬芯(珠海)科技有限公司 | 一种音频播放同步方法及装置 |
CN109521988B (zh) * | 2017-09-18 | 2022-04-15 | 炬芯科技股份有限公司 | 一种音频播放同步方法及装置 |
CN109688528A (zh) * | 2018-12-27 | 2019-04-26 | 安克创新科技股份有限公司 | 音频设备及信号延迟的测试方法、系统以及存储介质 |
CN111556467A (zh) * | 2020-03-31 | 2020-08-18 | 惠州市德赛西威汽车电子股份有限公司 | 一种手机互联音频播放处理方法 |
CN111556467B (zh) * | 2020-03-31 | 2023-08-08 | 惠州市德赛西威汽车电子股份有限公司 | 一种手机互联音频播放处理方法 |
CN113436639A (zh) * | 2021-08-26 | 2021-09-24 | 北京百瑞互联技术有限公司 | 一种音频流补偿方法、装置、存储介质及设备 |
CN113436639B (zh) * | 2021-08-26 | 2021-12-03 | 北京百瑞互联技术有限公司 | 一种音频流补偿方法、装置、存储介质及设备 |
Also Published As
Publication number | Publication date |
---|---|
JP6141358B2 (ja) | 2017-06-07 |
CN105448312B (zh) | 2019-02-19 |
KR101658316B1 (ko) | 2016-09-22 |
EP2955713A1 (en) | 2015-12-16 |
US20150363411A1 (en) | 2015-12-17 |
JP2016004600A (ja) | 2016-01-12 |
US10180981B2 (en) | 2019-01-15 |
KR20150142596A (ko) | 2015-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105448312A (zh) | 音频同步播放方法、装置及系统 | |
JP6883636B2 (ja) | ダッキング制御のためのメタデータ | |
US20170060520A1 (en) | Systems and methods for dynamically editable social media | |
CN111916039B (zh) | 音乐文件的处理方法、装置、终端及存储介质 | |
CN103646654B (zh) | 一种录音数据分享方法及终端 | |
CN108111997A (zh) | 蓝牙设备音频同步方法和系统 | |
WO2015132767A1 (en) | Systems and methods for digital multimedia capture using haptic control, cloud voice changer, and protecting digital multimedia privacy | |
CN107277594A (zh) | 一种视音频与弹幕同步方法及装置 | |
CN112130616B (zh) | 时钟同步方法、装置及存储介质 | |
CN104464743B (zh) | 一种在语音聊天室中播放背景音乐的方法及移动终端 | |
CN104333802A (zh) | 一种视频播放方法及视频播放器 | |
CN104902145B (zh) | 一种直播流视频的播放方法及装置 | |
CN106658135A (zh) | 一种音视频播放方法及装置 | |
CN104978966B (zh) | 音频流中的丢帧补偿实现方法和装置 | |
US20160150008A1 (en) | Clock synchronization using wifi beacons | |
CN112562638A (zh) | 语音预览的方法、装置及电子设备 | |
CN112017622A (zh) | 一种音频数据的对齐方法、装置、设备和存储介质 | |
EP3203468B1 (en) | Acoustic system, communication device, and program | |
CN103744505A (zh) | 信息处理方法及电子设备 | |
JP2008171194A (ja) | 通信システム、通信方法、サーバ及び端末 | |
CN105976825A (zh) | 音乐分享装置及方法 | |
CN106657852B (zh) | 对时方法、设备及系统 | |
CN112133269B (zh) | 一种音频处理方法、装置、设备及介质 | |
CN110688586A (zh) | 一种为用户推荐社交活动或好友的方法与设备 | |
CN105741830B (zh) | 一种音频合成方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |