CN114974321B - 一种音频播放方法、设备及*** - Google Patents
一种音频播放方法、设备及*** Download PDFInfo
- Publication number
- CN114974321B CN114974321B CN202110221879.2A CN202110221879A CN114974321B CN 114974321 B CN114974321 B CN 114974321B CN 202110221879 A CN202110221879 A CN 202110221879A CN 114974321 B CN114974321 B CN 114974321B
- Authority
- CN
- China
- Prior art keywords
- audio
- playing
- time point
- speed
- module
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 82
- 239000012634 fragment Substances 0.000 claims abstract description 135
- 238000004891 communication Methods 0.000 claims description 39
- 238000004590 computer program Methods 0.000 claims description 9
- 239000000872 buffer Substances 0.000 abstract description 64
- 238000004364 calculation method Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 17
- 238000012545 processing Methods 0.000 description 13
- 238000005070 sampling Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 239000013078 crystal Substances 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000012417 linear regression Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000005855 radiation Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 206010017577 Gait disturbance Diseases 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
-
- 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
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
- G11B2020/10537—Audio or video recording
- G11B2020/10546—Audio or video recording specifically adapted for audio data
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- General Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
一种音频播放方法、设备及***,涉及音频技术领域,可以调整音频播放设备与音频源的播放进度一致,提升用户的收听体验。音频播放方法包括:音频播放设备接收到音频源设备发送的音频数据后,将音频数据划分为多个音频分片,并根据音频播放设备缓存区中音频分片的数量的变化趋势,调整后续音频分片的预计播放时间点,以保持与音频源设备的播放进度(或投放进度)一致;或者,音频播放设备可以根据各个音频分片的实际播放时间点与预计播放时间点的偏差,调整音频播放设备的播放速度,调整与音频源设备的播放速度(或投放速度)一致,以保持与音频源设备的播放进度(或投放进度)一致。
Description
技术领域
本申请涉及音频技术领域,尤其涉及一种音频播放方法、设备及***。
背景技术
智能设备可以通过蓝牙、Wi-Fi等无线通信方式连接到音频播放设备(如耳机、音箱等),并通过音频播放设备播放音频内容。同时,智能设备播放视频画面。由于智能设备和音频播放设备的晶振差异,造成两个设备播放速度不同,可能会出现智能设备播放的视频画面,与音频播放设备播放的音频内容出现不同步的情况,尤其在经过较长时间后更为明显,导致用户体验较差。
发明内容
为了解决上述的技术问题,本申请提供了一种音频播放方法、设备及***。本申请提供的技术方案,能够使得音频播放设备与音频源设备(即智能设备)的播放进度保持一致,提升用户体验,尤其是收听体验。
第一方面,提供一种音频播放方法,应用于第一音频播放设备,第一音频播放设备与音频源设备无线通信。该方法包括:接收到音频源设备发送的音频数据;将音频数据划分为N个音频分片;缓存N个音频分片;其中,根据第一调整系数得到每个音频分片的预计播放时间点;依次播放每个音频分片;周期性地采集缓存的音频分片的当前数量以及当前数量所对应的采集时间点;在周期性地采集的时长达到预设时长后,或者,在周期性地采集的次数达到预设次数后,根据每次采集的当前数量、以及每次采集的当前数量所对应的采集时间点,得到第二调整系数;根据第二调整系数得到后续每个音频分片的预计播放时间点;依次播放后续的音频分片;其中,N为大于等于2的正整数;第一调整系数为预设系数。
可以理解的是,第一音频播放设备缓存区数据量的变化趋势体现出音频源设备和第一音频播放设备的播放速度的偏差。因此,可以根据该缓存区数据量的变化趋势,调整音频数据中各个音频分片的预计开始播放的时间点(简称为预计播放时间点),达到同步第一音频播放设备和音频源设备的播放速度的效果。进而可以避免造成第一音频播放设备缓存区的数据溢出或者耗尽,进而避免出现播放音频时声音卡顿或爆音的情况,提升外放音频的收听体验。
在一种可能的实现方式中,在接收到音频源设备发送的音频数据之前,该方法还包括:接收到音频源设备发送的播放音频的指示。
在一种可能的实现方式中,根据每次采集的当前数量、以及每次采集的当前数量所对应的采集时间点,得到第二调整系数;包括:对每次采集的当前数量、每次采集的当前数量所对应的采集时间点进行线性拟合,得到第一斜率;根据第一斜率得到第二调整系数。
示例性的,以时间为X轴,第一音频播放设备缓存的第一音频分片的数量为Y轴,在二维平面上绘制离散点。换言之,绘制的各个离散点用于表征在相应采集时间点采集到的第一音频分片的数量。然后,通过线性回归方式对离散点进行线性回归后得到一条直线,该直线的斜率(即第一斜率)表示着缓存的第一音频分片的增加或减少的变化趋势,即每单位时间内增加或减少第一音频分片的数量。第一斜率为正值时,表示每单位时间内增加的第一音频分片的数量,也意味着音频源设备的播放速度(或投放速度)快于第一音频播放设备的播放速度。第一斜率为负值时,表示每单位时间内减少的第一音频分片的数量,也意味着音频源设备的播放速度(或投放速度)慢于第一音频播放设备的播放速度。通过第一斜率计算调整系数,可以调整后续第二音频分片的播放尽快,以快速与音频源设备的播放速度或投放速度保持一致。
在一种可能的实现方式中,周期性地采集缓存的音频分片的当前数量以及当前数量所对应的采集时间点;包括:当任意一个音频分片的实际播放时间点和预计播放时间点两者的差值的绝对值大于第一阈值时,第一音频播放设备开始周期性地采集缓存的音频分片的当前数量以及当前数量所对应的采集时间点;其中,音频分片的实际播放时间点为音频分片的扬声器预期输出时间点;音频分片的扬声器预期输出时间点是第一音频播放设备调用第一音频播放设备的音频输出驱动的接口查询得到。
由此,提供开始采集缓存的第一音频分片数量的时机。
第二方面,提供一种音频播放方法,应用于第一音频播放设备,第一音频播放设备与音频源设备无线通信。该方法包括:接收到音频源设备发送的音频数据;将音频数据划分为N个音频分片;缓存N个音频分片;其中,根据第一调整系数得到每个音频分片的预计播放时间点;依次播放每个音频分片;在音频分片的实际播放时间点与预计播放时间点的差值的绝对值大于预设阈值后,调整缓存的音频分片的数量;其中,音频分片的实际播放时间点为音频分片的扬声器预期输出时间点;音频分片的扬声器预期输出时间点通过第一音频播放设备调用第一音频播放设备的音频输出驱动的接口查询得到;N为大于等于2的正整数;第一调整系数为预设系数。
由此,提供了一种调整第一音频播放设备的播放速度的方法,可以与音频源的播放速度或投放速度一致,有利于长时间保持与音频源的播放进度或投放进度一致。
在一种可能的实现方式中,在音频分片的实际播放时间点与预计播放时间点的差值的绝对值大于预设阈值后,调整缓存的音频分片的数量;包括:在音频分片的实际播放时间点与预计播放时间点的差值的绝对值大于预设阈值,且差值为负值后,增加第一数量的音频分片;在音频分片的实际播放时间点与预计播放时间点的差值的绝对值大于预设阈值,且差值为正值后,删除第一数量的音频分片。
在一种可能的实现方式中,第一数量关联于差值的绝对值除以音频分片播放时长的商。
在一种可能的实现方式中,第一数量为差值的绝对值除以音频分片播放时长的商。
在一种可能的实现方式中,增加的第一数量的音频分片为静音数据。
在一种可能的实现方式中,在音频分片的实际播放时间点与预计播放时间点的差值的绝对值小于或等于预设阈值后,调整第一音频播放设备的播放速度。
在一种可能的实现方式中,在音频分片的实际播放时间点与预计播放时间点的差值的绝对值小于或等于预设阈值后,采集音频分片的实际播放时间点,以及音频分片的实际播放时间点与预计播放时间点的差值;在采集的次数达到预设次数后,或者,在采集的时长达到预设时长后,对每次采集的实际播放时间点,每次采集的实际播放时间点对应的差值进行线性拟合,得到第二斜率;获取第一音频播放设备的当前播放速度;根据当前播放速度和第二斜率,得到调整后的播放速度;以调整后的播放速度,依次播放后续的音频分片。
由此,提供了一种计算第一音频播放设备与音频源设备的速度偏差的具体方法。
在一种可能的实现方式中,第一音频播放设备连接有第二音频播放设备,该方法还包括:向第二音频播放设备发送N个音频分片。
也就是说,第一音频播放设备可以和第二音频播放设备一同播放音频,在实现第一音频播放设备和音频源设备的播放同步时,也实现了第二音频播放设备与音频源设备的播放同步。进一步的,第二音频播放设备也可以采用与第一音频播放设备相同的调整播放速度的方法,调整第二音频播放设备的播放速度。
在一种可能的实现方式中,在第一音频播放设备播放第一个音频分片之前,该方法还包括:向第二音频播放设备发送开始播放音频分片的指示。
第三方面,提供一种第一音频播放设备。第一音频播放设备包括处理器、音频输出装置,以及存储器,音频输出装置和存储器都与处理器耦合,存储器用于存储计算机程序,当计算机程序被处理器执行是,使得第一音频播放设备执行上述第一方面以及第一方面中任一种可能的实现方式中的方法,或者执行上述第二方面以及第二方面中任一种可能的实现方式中的方法。
第四方面,提供一种装置。该装置包含在第一音频播放设备中,该装置具有实现上述方面及上面方面中可能的实现方式中任一方法中第一音频播放设备行为的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括至少一个与上述功能相对应的模块或单元。例如,通信模块或单元、处理模块或单元、以及播放模块或单元等。
第五方面,提供一种计算机可读存储介质。该计算机可读存储介质包括计算机程序,当计算机程序在第一音频播放设备上运行时,使得所述第一音频播放设备执行上述第一方面以及第一方面中任一种可能的实现方式中的方法,或者执行上述第二方面以及第二方面中任一种可能的实现方式中的方法。
第六方面,提供一种计算机程序产品。当计算机程序产品在计算机上运行时,使得计算机执行执行上述第一方面以及第一方面中任一种可能的实现方式中的方法,或者执行上述第二方面以及第二方面中任一种可能的实现方式中的方法。
第七方面,提供一种芯片***。该芯片***包括处理器,当处理器执行指令时,处理器执行上述第一方面以及第一方面中任一种可能的实现方式中的方法,或者执行上述第二方面以及第二方面中任一种可能的实现方式中的方法。
第八方面,提供一种***。该***包括音频源播放设备和第一音频播放设备,所述第一音频播放设备执行上述第一方面以及第一方面中任一种可能的实现方式中的方法,或者执行上述第二方面以及第二方面中任一种可能的实现方式中的方法。
在一种可能的实现方式中,该***还包括第二音频播放设备,所述第二音频播放设备执行上述第二方面以及第二方面中任一种可能的实现方式中的方法。
可以理解地,上述提供的第三方面所述的第一音频播放设备,第四方面所述的装置,第五方面所述的计算机存储介质,第六方面所述的计算机程序产品,第七方面所述的芯片***,以及第八方面所述的***所能达到的有益效果,可参见第一方面或第二方面及其任意一种可能的设计方式中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的音频播放方法的场景示意图;
图2为本申请实施例提供的音频源设备的结构示意图;
图3为本申请实施例提供的音频播放设备的结构示意图;
图4为本申请实施例提供的音频播放方法的流程示意图;
图5为本申请实施例提供的音频播放设备缓存音频分片的数量变化趋势的拟合方法的示意图;
图6为本申请实施例提供的音频播放方法的流程示意图;
图7为本申请实施例提供的音频播放设备实际播放时间点与预计播放时间点的差异的变化趋势的拟合方法的示意图;
图8为本申请实施例提供的音频播放方法的流程示意图;
图9为本申请实施例提供的音频播放方法的流程示意图;
图10为本申请实施例提供的芯片***的结构示意图。
具体实施方式
在本申请实施例的描述中,除非另有说明,“/”表示或的意思。例如,A/B可以表示A或B。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
图1为本申请实施例提供的音频播放方法的场景示意图。图1示出了本申请实施例提供的一种通信***。该通信***包括音频源设备100和音频播放设备200。可选的,通信***还可以包括音频播放设备300。
其中,音频源设备100用于向音频播放设备200提供音频内容。示例性的,本申请实施例中音频源设备100例如可以为手机、平板电脑、个人计算机(personal computer,PC)、个人数字助理(personal digital assistant,PDA)、上网本、可穿戴设备、增强现实技术(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、车载设备、智慧屏等,本申请对该音频源设备100的具体形式不做特殊限制。
音频播放设备200,用于接收音频源设备100发送来的音频内容,并播放该音频内容。示例性的,音频播放设备200例如可以为无线耳机、无线音箱、可穿戴设备、AR设备、VR设备等,本申请对该音频播放设备200的具体形式不做特殊限制。
在一种应用场景中,音频源设备100在播放视频时,可以通过自身的显示屏播放视频的画面内容,将视频中的音频内容发送给音频播放设备200;由音频播放设备200进行播放音频内容。
通常,为了减少无线传输时的网络抖动带来的影响,音频播放设备200会对从音频源设备100处接收的音频内容进行缓存,并延迟播放。又由于音频源设备100和音频播放设备200为不同的设备,具有硬件差异(例如晶振频率不同),会导致两个设备的播放速度不同,进而造成音频播放设备200处缓存区的数据溢出或者耗尽,出现播放音频时声音卡顿或爆音。
一种方案中,可以设置音频播放设备200缓存数据的最大阈值和最小阈值。当音频播放设备200缓存区的数据大于最大阈值时,按照一定比例调大音频播放设备200的播放速度。当音频200缓存区的数据小于最小阈值时,按照一定比例调小音频播放设备200的播放速度。从而,保持音频播放设备200缓存的数据量维持在预设范围内,减少音频播放设备200处缓存区的数据溢出或者耗尽的情况。
在该方案中,当无线网络传输速度不稳定时,音频播放设备200缓存区的数据量会不断变化,可能需要频繁调整音频播放设备200的播放速度,导致播放音频内容时快时慢,用户体验不佳。并且,调整音频播放设备200的播放速度通常按照固定的比例进行调整,与实际的播放速度不匹配,播放速度的调整精度不高。
为此,本申请提供的技术方案,能够使得音频播放设备与音频源设备(即智能设备)的播放进度保持一致,提升用户体验,尤其是收听体验。
示例性地,图2示出了音频源设备100的硬件结构。
音频源设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对音频源设备100的具体限定。在本申请另一些实施例中,音频源设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展音频源设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作***,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储音频源设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行音频源设备100的各种功能应用以及数据处理。
在一些实施例中,处理器110可以包括一个或多个接口,例如包括USB接口130,是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为音频源设备100充电,也可以用于音频源设备100与***设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
音频源设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
移动通信模块150可以提供应用在音频源设备100上的包括2G/3G/4G/5G等无线通信的解决方案。
无线通信模块160可以提供应用在音频源设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星***(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在本申请实施例中,音频源设备100可以通过无线通信模块160,与音频播放设备200建立通信连接,将待播放的音频内容通过无线连接的方式发送给音频播放设备200,由音频播放设备200播放。该待播放的音频内容可以是视频中的声音内容,也可以是独立的音频,例如音乐等。在一些示例中,音频播放设备200还可以将音频内容再次转发给音频播放设备300,由音频播放设备200和音频播放设备300共同播放。其中,音频播放设备200为主播放设备,音频播放设备300为从播放设备,音频播放设备300的数量为一个或多个。
音频源设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。
音频源设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
示例性地,图3示出了音频播放设备200的硬件结构。
音频播放设备200可以包括处理器210,存储器220,无线通信模块230,天线240,扬声器250,电源模块260等。可以理解的是,本发明实施例示意的结构并不构成对音频播放设备200的具体限定。在本申请另一些实施例中,音频播放设备200可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器210可以包括一个或多个处理单元,例如:处理器210可以包括分发模块、播放模块、缓存模块、调整系数计算模块、以及播速模块等。可选的,处理器210还可以包括时钟同步模块等。下文将结合具体实施例对各个模块的具体作用进行详细说明。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
存储器220可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。一些示例中,存储器220可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器210通过运行存储在存储器220的指令,和/或存储在设置于处理器中的存储器的指令,执行音频播放设备200的各种功能应用以及数据处理。
音频播放设备200的无线通信功能可以通过天线240,无线通信模块230,处理器210中的调制解调处理器以及基带处理器等实现。
无线通信模块230可以提供应用在音频播放设备200上的包括WLAN(如Wi-Fi网络),BT,GNSS,FM,NFC,IR等无线通信的解决方案。无线通信模块230可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块230经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器210。无线通信模块230还可以从处理器210接收待发送的信号,对其进行调频,放大,经天线240转为电磁波辐射出去。
在本申请实施例中,音频播放设备200可以通过无线通信模块230,与音频源设备100建立通信连接,通过无线连接接收音频源设备100发送的音频内容,并通过扬声器250播放。在一些示例中,音频播放设备200还可以通过无线通信模块230,与其他的音频播放设备300建立通信连接。那么音频播放设备200可以将音频内容再次转发给音频播放设备300,由音频播放设备200和音频播放设备300共同播放,播放出具有立体声效的声音。其中,音频播放设备200为主播放设备,音频播放设备300为从播放设备,音频播放设备300的数量为一个或多个。
电源模块260为音频播放设备200的各个部件提供供电,例如为处理器210、存储器220、无线通信模块230等供电。
需要说明的是,音频播放设备300的结构可以参考音频播放设备200,当然音频播放设备300的结构可以与音频播放设备200的结构相同,也可以不同,本申请对此不做限定。
本申请实施例提供的技术方案可适用于上述图1所示的通信***,且音频源设备100具有图2所示的结构,音频播放设备200具有图3所示的结构。
在本申请提供的一种技术方案中,音频播放设备200在多个邻近的时间点(或时刻)采集缓存区的数据量的大小,通过线性拟合的方式计算出缓存区数据量的变化趋势。其中,缓存区数据量的变化趋势体现出音频源设备100和音频播放设备200的播放速度的偏差。因此,可以根据该缓存区数据量的变化趋势,调整音频内容中各个音频分片的预计开始播放的时间点(简称为预计播放时间点),达到同步音频播放设备200和音频源设备100的播放速度的效果,提升用户的听觉体验。
在本申请提供的又一种技术方案中,由于音频播放设备200和音频源设备100的播放速度不同,还可以调整音频播放设备200的播放速度,使得音频播放设备200的播放速度与音频源设备100的播放速度保持一致。具体的,音频播放设备200可以采集音频分片中的预计播放时间点,与对应的音频播放设备200实际开始播放该音频分片的时间点(简称为音频分片的实际播放时间点)的偏差,然后通过线性拟合的方式计算出偏差的变化趋势;并利用该变化趋势去调整音频播放设备200的播放速度,使得音频播放设备200的播放速度与音频源设备100的播放速度一致。
在另一种应用场景中,音频源设备100在播放视频时,可以通过自身的显示屏播放视频的画面内容,将视频中的音频内容发送给音频播放设备200和音频播放设备300,由音频播放设备200和音频播放设备300共同播放音频内容。其中,音频播放设备200为主播放设备,音频播放设备300为从播放设备。
其中,音频源设备100和音频播放设备200之间的同步播放,可以参考前一个应用场景中的描述,此处不再赘述。通常音频播放设备200和音频播放设备300为同一厂家的设备,可以执行时钟同步。即便执行了时钟同步,音频播放设备200和音频播放设备300依然为不同的设备,仍存在因为硬件差异(例如晶振频率不同)造成播放速度不同。当播放时间延长后,仍然存在两个设备的播放进度不同步的情况。
类似地,音频播放设备300也可以采集音频分片中的预计播放时间点,与音频播放设备300实际开始播放音频分片的时间点(简称为实际播放时间点)的偏差,然后通过线性拟合的方式计算出偏差的变化趋势;并利用该变化趋势去调整音频播放设备300的播放速度,使得音频播放设备300的播放速度与音频源设备100的播放速度保持一致。
在又一种应用场景中,音频源设备100在播放音频(例如音乐)时,可以将音频直接发送给音频播放设备200,由音频播放设备200播放音频内容。
一般地,音频源设备100向音频播放设备200发送音频流的速度(又称为投放速度),与音频播放设备200的播放速度不同,仍然会造成音频播放设备200在缓存区的数据溢出或者耗尽,出现播放音频时声音卡顿或爆音的情况。因此,音频播放设备200需要调整播放速度至与音频源设备100的投放速度一致,避免造成音频播放设备200处缓存区的数据溢出或者耗尽,进而避免出现播放音频时声音卡顿或爆音的情况。
在又一种应用场景中,音频源设备100在播放音频(例如音乐)时,可以将音频直接发送给音频播放设备200和音频播放设备300,由音频播放设备200和音频播放设备300共同播放音频内容。
那么,音频播放设备200需要调整播放速度至与音频源设备100的投放速度一致,另外音频播放设备300也要调整播放速度与音频源设备100的投放速度一致。
下文将结合附图对本申请的技术方案进行阐述。
图4示出了本申请提供的一种音频播放方法的流程。如图4所示,该音频播放的方法,可以包括:
S401、音频源设备100接收到播放音频的指示。
示例性的,音频源设备100连接有至少一个音频播放设备,例如音频播放设备200。其中,音频源设备100可以通过无线通信模块160与音频播放设备200建立无线连接,采用的无线连接方式例如可以是蓝牙、WLAN、NFC等。
当用户在音频源设备100上操作,指示开始播放视频,音频源设备100可以播放视频的画面内容,将视频的音频内容(即音频流)发送给音频播放设备200,由音频播放设备200进行播放,即实现音频的外放。或者,用户在音频源设备100上操作,指示开始播放纯音频(例如音乐、录音等),音频源设备100向音频播放设备200发送音频流。
需要注意的是,音频源设备100播放视频时,音频源设备100侧的画面内容,应当与音频播放设备200侧的音频内容的播放速度应该保持一致。音频源设备100播放纯音频时,音频源设备100向音频播放设备200投送音频流的速度,应当与音频播放设备200侧的音频内容的播放速度应该保持一致。
S402、音频源设备100向音频播放设备200发送音频流。
S403、音频播放设备200对接收到的音频流进行编解码。
示例性的,以音频播放设备200包括分发模块、调整系数计算模块、播放模块和缓存模块为例进行说明,那么分发模块接收音频源设备100发送的音频流,并对接收到的音频流进行编解码,得到符合自身播放格式的音频数据。编解码与音频播放设备200的声道数、采样位数和采样频率相关,具体的编解码过程可参考相关的音频编解码技术,这里不再说明。
S404、音频播放设备200对编解码后的音频流进行分片,并根据调整系数计算每个音频分片的预计播放时间点。
示例性的,以音频播放设备200包括分发模块、调整系数计算模块、播放模块和缓存模块为例进行说明,那么步骤S404可具体包括步骤S404a至步骤S404e。
S404a、分发模块在得到编解码后的音频流后,向调整系数计算模块请求获取当前的调整系数。
S404b、调整系数计算模块向分发模块返回当前的调整系数。
需要注意的是,调整系数计算模块可以周期性地更新调整系数的数值,而分发模块根据当前最新的调整系数计算各个音频分片的预计播放时间点。其中,调整系数计算模块更新调整系数的计算过程可参考下面的步骤S406。其中,调整系数的初始值可以设置为1。
S404c、分发模块对编解码后的音频流进行分片,并计算每个音频分片的预计播放时间点。
示例性地,分片后的每个音频分片的数据结构可以为:
data type
-index:int
-len:int
-playtime:long long
其中,index,为音频分片的编号,从1开始编号,依次递增。
len,为音频分片的数据长度。数据长度与音频分片播放时长的关系为:len=声道数*采样位数*采样率*音频分片播放时长/8。其中,音频分片播放时长为预设值,例如为10ms(millisecond,毫秒)。换言之,音频分片的数据长度为固定值。
举个例子,音频播放设备200的声道数为1,采样位数为32位,采样率为96KHz,音频分片播放时长为10ms,那么len=1*32*96*10/8=3840ms。
playtime,为音频分片的预计播放时间点,例如单位为μs(microsecond,微秒)。其中,第一个音频分片(即音频分片1#)的预计播放时间点=当前时间+预设的延迟时间(例如1s)。其中,预设的延迟时间可以使得音频播放设备200缓存音频分片的数据,防止因网络传输抖动造成播放异常。第N个音频分片的预计播放时间点=第一个音频分片的预计播放时间点+(N-1)*音频分片播放时长*1000*调整系数。
可见,本申请中音频分片的预计播放时间点为根据第一个音频分片的预计播放时间点,音频分片的编号,以及调整系数确定的。其中,调整系数为根据音频播放设备200中缓存的音频分片的数量进行动态变化的。下述步骤S406将详细说明调整系数的计算方法,此处暂不做说明。其中,调整系数初始值为1。
接着上述举例,当前时间为2020/11/11 00:00:00.000 000。预设的延迟时间为1s,那么第一个音频分片的预计播放时间点为2020/11/11 00:00:01.000 000。第二个音频分片的预计播放时间点=2020/11/11 00:00:01.000 000+(2-1)*10*1=2020/11/11 00:00:01.010 000=2020/11/11 00:00:01.010 000。
第1个音频分片的数据信息如表一所示:
表一
index | 1 |
len | 3840 |
playTime | 2020/11/11 00:00:01.000 000 |
第2个音频分片的数据信息如表二所示:
表二
index | 2 |
len | 3840 |
playTime | 2020/11/11 00:00:01.010 000 |
需要说明的是,本文中均以音频分片播放时长的单位为ms(毫秒),音频分片的预计播放时间点为μs(微秒)为例进行说明的,下文不再特别说明。
还需要说明的是,在一些实施例中,分发模块可以周期性向调整系数计算模块请求当前的调整系数,以便根据当前的调整系数计算音频分片的预计播放时间点。或者,分发模块也可以在接收到特定数据量的音频流数据后,向调整系数计算模块请求当前的调整系数,以便根据当前的调整系数计算音频分片的预计播放时间点。在另一些实施例中,当调整系数计算模块更新调整系数后,也可以将更新后的调整系数发送给分发模块,以便分发模块根据更新后的调整系数计算音频分片的预计播放时间点。换言之,分发模块可以被动地接收调整系数计算模块发送的最新的调整系数计算音频分片的预计播放时间点。
S404d、分发模块向缓存模块发送各个音频分片。
分发模块将生成的各个音频分片依次发送到缓存模块,进行缓存。各个音频分片携带有预计播放时间点。
S404e、缓存模块缓存各个音频分片。
S405、当前时间为第一个音频分片(即音频分片1#)的预计播放时间点时,音频源设备100启动音频播放。
示例性的,仍然以音频播放设备200包括分发模块、调整系数计算模块、播放模块和缓存模块为例进行说明。那么,步骤S405可具体包括步骤S405a和步骤S405b。
S405a、当前时间晚于或等于第一个音频分片的预计播放时间点时,分发模块通知播放模块启动音频播放。
S405b、播放模块从缓存模块读取第一个音频分片的数据以及之后的音频分片的数据,并开始依次播放各个音频分片。
在一些实施例中,播放模块从缓存模块读取音频分片的数据后,将音频分片的数据写入播放模块中的音频输出驱动,例如高级Linux声音架构(advanced linux soundarchitecture,ALSA)。并通过音频输出驱动的接口获取当前写入的音频分片对应的预期输出时间,该预期输出时间可认为是该音频分片的实际播放时间点。
情况1、若音频分片的实际播放时间点晚于音频分片中携带的预期播放时间点,表明音频播放设备200的播放进度慢于音频源设备100的播放进度,播放模块可以通知缓存模块删除部分音频分片,以便音频播放设备200的播放进度尽快与音频源设备100的播放进度相同。例如,音频播放设备200删除的音频分片的数量可以根据所述差值的绝对值除以音频分片播放时长(即每个音频分片的数据长度)的商确定。若所述差值的绝对值除以音频分片播放时长(即每个音频分片的数据长度)的商为整数,则该数量等于所述差值的绝对值除以音频分片播放时长的商。若所述差值的绝对值除以音频分片播放时长的商不为整数,则可以对该商进行取整,将取整会后得到整数作为删除音频分片的数量。其中,取整方法可以是四舍五入,向上取整,向下取整等。
例如,若音频分片的实际播放时间点减去预期播放时间点的差值为0.6s(600ms),每个音频分片的数据长度为10ms,那么需要缓存模块删除600ms/10ms=60个音频分片。
情况2、若音频分片的实际播放时间点早于音频分片中携带的预期播放时间点,表明音频播放设备200的播放进度快于音频源设备100的播放进度,播放模块可以通知缓存模块增加部分音频分片。其中,增加的音频分片可以是静音的音频数据,也可以是复制当前写入的音频分片数据或者是其他的音频数据。这样可以相当于音频播放设备200等待相应时间后播放后续的音频分片,可使得音频播放设备200与音频源设备100的播放进度相同。
增加的音频分片的数量可以参考情况1中删除的音频分片的数量的计算方法类似,这里不再赘述。
例如,若音频分片的实际播放时间点减去预期播放时间点的差值为-0.6s(600ms),每个音频分片的数据长度为10ms,那么需要缓存模块增加600ms/10ms=60个音频分片。增加的音频分片的数据为全0,即静音数据。
需要强调的是,前文已说明,这里各个音频分片携带的预计播放时间点(playtime)为根据音频分片的编号,第一个音频分片的预计播放时间点,以及调整系数确定的。其中,调整系数为根据音频播放设备200中缓存的音频分片的数量进行动态变化的。以下详细说明调整系数的计算以及更新过程。
具体地,当音频播放设备200确定当前时间为第一个音频分片的预计播放时间点时,启动音频播放后,还记录音频播放设备200中缓存的音频分片的数量与时间的变化特征,并根据该变化特征计算调整系数。也就是说,在音频播放设备200执行步骤S405时,还执行步骤S406,具体如下:
S406、音频源设备100记录音频播放设备200中缓存的音频分片的数量与时间的变化特征,并根据该变化特征计算调整系数。
示例性的,仍然以音频播放设备200包括分发模块、调整系数计算模块、播放模块和缓存模块为例进行说明。那么,步骤S406可具体包括步骤S406a至步骤S406d。
S406a、播放模块在接收到启动音频播放的通知后,通知调整系数计算模块开始周期性采集缓存模块中音频分片的数量。
在一些实施例中,播放模块可以在接收到启动音频播放的通知后,就立即通知调整系数计算模块开始周期性采集缓存模块中音频分片的数量,也可以在接收到启动音频播放的通知后的一段时间(例如1秒)后,再通知调整系数计算模块开始采集。在另一些实施例中,播放模块还可以在检测到某个音频分片的预计播放时间点与实际播放时间点的差值的绝对值大于预设阈值A(也可以是其他阈值)时,通知调整系数计算模块开始采集。也就是说,本申请对调整系数计算模块开始周期性采集缓存模块中音频分片的数量的时机不做具体限定。
S406b、调整系数计算模块周期性采集缓存模块中音频分片的数量。
在一些实施例中,调整系数计算模块可以设置定时器,然后周期性向缓存模块采集当前缓存模块中存储的音频分片的数量,例如每200μs采集一次。在另一些实施例中,调整系数计算模块也可以指示缓存模块周期性上报自身存储的音频分片的数量。即调整系数计算模块向缓存模块发送周期性采集缓存的音频分片的数量的指示。缓存模块接收到指示后,设置定时器,并周期性上报自身存储的音频分片的数量。
S406c、调整系数计算模块存储采集的缓存模块中的音频分片的数量与采集时间点。
示例性地,调整系数计算模块将采集时间点,以及各个采集时间点采集的缓存模块中音频分片的数量记录在采样队列1中,采样队列1中存储的内容如表三所示。
表三
S406d、当满足预设条件时,调整系数计算模块根据采集的缓存模块中的音频分片的数据与采集时间点,计算并更新调整系数。
其中,预设条件可以为采样队列1中的数据条数(如表三中每一行数据为一条数据)达到预定数量,例如100条,也可以为上一次计算并更新调整系数后的预设时间段(例如3分钟)。
一些实施例中,调整系数计算模块可以对采样队列1中的数据进行线性拟合,得到采样队列1中(即缓存模块中)音频分片的变化趋势,即采样队列1中音频分片数量与时间的关系。
通常,音频源设备100根据自身的播放进度,向音频播放设备200发送音频流。音频播放设备100的缓存模块中对接收的音频流进行缓存,得到缓存队列。可以理解的是,缓存队列的头部为根据先接收到的音频流得到音频分片,缓存队列尾部为后接收到的音频流得到的音频分片。可见,音频源设备100的播放速度(或者向音频播放设备200投放音频流的速度,简称为投放速度)影响着缓存队列尾部音频分片的增加速度。当音频播放设备200启动音频播放时,从缓存队列的头部获取音频分片进行播放,并删除已播放的音频分片。可见,音频播放设备200的播放速度影响着缓存队列头部音频分片的减少速度。综合来看,音频源设备100的播放速度(或投放速度)与音频播放设备200播放速度的差异体现在缓存队列中音频分片数量的变化趋势上。由于音频源设备100和音频播放设备200之间的网络传输情况也影响着缓存队列中个别时间点时音频分片数量,因此可以通过线性拟合的方式,排除个别异常数据。
具体的,如图5所示,以时间为X轴,缓存模块中音频分片的数量为Y轴,在二维平面上绘制离散点。换言之,图5中各个离散点用于表征在相应采集时间点采集到的音频分片的数量。然后,通过线性回归方式对离散点进行线性回归后得到图5中的直线,该直线的斜率(记为斜率1)表示着缓存模块中音频分片的增加或减少的变化趋势,即每单位时间内增加或减少音频分片的数量。斜率1为正值时,表示每单位时间内增加的音频分片的数量,也意味着音频源设备100的播放速度(或投放速度)快于音频播放设备200的播放速度。斜率1为负值时,表示每单位时间内减少的音频分片的数量,也意味着音频源设备100的播放速度(或投放速度)慢于音频播放设备200的播放速度。
那么,可以采用公式(1)计算调整系数:
调整系数=1-(斜率1*音频分片播放时长的数值/1000) 公式(1)
其中,音频分片播放时长的数值是在音频分片播放时长的单位为毫秒时的数值;该数值没有单位。调整系数、斜率1都没有单位。
调整系数计算模块得到最新的调整系数后,清空采集队列中数据。后续,会根据下一周期内采集的缓存模块中音频分片的数量,计算下一周期的调整系数。
步骤S404c中已得到公式(2):
第N个音频分片的预计播放时间点=第一个音频分片的预计播放时间点+(N-1)*音频分片播放时长*1000*调整系数 公式(2)
可以理解,当斜率1为正值时,意味着音频源设备100的播放速度(或投放速度)快于音频播放设备200的播放速度,那么音频源设备100的播放进度也快于音频播放设备200的播放进度。根据公式(1)可推导出调整系数小于1,那么再根据公式(2)可推出预计第N个音频分片的预计播放时间点也变小了(相比较于调整系数为1时),即第N个音频分片的预计播放时间点提前了。换言之,音频播放设备200的播放进度加快了,便于尽快追赶到音频源设备100的播放进度。
当斜率1为负值时,意味着音频源设备100的播放速度(或投放速度)慢于音频播放设备200的播放速度,那么音频源设备100的播放进度也慢于音频播放设备200的播放进度。根据公式(1)可推导出调整系数大于1,那么再根据公式(2)可推出预计第N个音频分片的预计播放时间点也变大了(相比较于调整系数为1时),即第N个音频分片的预计播放时间点延后了。换言之,音频播放设备200的播放进度放慢了,便于与音频源设备100的播放进度相同。
综上,由于音频播放设备200中缓存的音频分片的数量变化趋势体现着音频播放设备200播放速度(或投放速度)与音频源设备100播放速度的差异,因此音频播放设备200根据音频播放设备200中缓存的音频分片的数量变化趋势更新调整系数,再根据调整系数计算音频分片的预计播放时间点,可以使得音频播放设备200播放速度与音频源设备100的播放速度(或投放速度)一致。进而可以避免造成音频播放设备200处缓存区的数据溢出或者耗尽,进而避免出现播放音频时声音卡顿或爆音的情况,提升外放音频的收听体验。
在本申请的另一些实施例中,由于两个设备存在硬件差异(例如晶振频率不同)造成音频播放设备200与音频源设备100的播放进度不一致的情况。为此,音频播放设备200还可以调整自身的播放速度,以使得自身的播放速度与音频源设备100的播放速度一致,使得音频播放设备200能在播放进度上与音频源设备100长时间地保持一致。
示例性地,以音频播放设备200包括分发模块、播放模块、缓存模块以及播速模块为例进行说明。
图6示出了本申请提供的又一种音频播放方法的流程。如6所示,该音频播放的方法包括步骤S401-步骤S403、步骤S404c-步骤S404e、步骤S405a、步骤S601至步骤S611,以及步骤S406。
其中,步骤S401-步骤S403、步骤S404c-步骤S404e、步骤S405a、以及步骤S406请参考图4中相关内容的描述,这里不再赘述。
S601、播放模块从缓存模块获取音频分片的内容。
在当前时间等于第一个音频分片的预计播放时间点时,分发模块通知播放模块启动音频播放,播放模块开始从缓存模块中依次读取第一个音频分片以及之后的音频分片的内容。
S602、播放模块将获取的音频分片内容写入音频输出驱动。
播放模块依次将读取的音频分片写入播放模块中的音频输出驱动(例如ALSA),并通过音频输出驱动播放当前写入的音频分片。
S603、播放模块调用音频输出驱动的接口查询当前写入的音频分片的扬声器预期输出时间,即当前写入的音频分片的实际播放时间点。
当播放模块向音频输出驱动写入音频分片后,播放模块还调用音频输出驱动的接口查询当前写入的音频分片的扬声器预期输出时间,该音频分片的扬声器预期输出时间可认为是该音频分片的实际播放时间点。
S604、播放模块计算音频分片实际播放时间点和音频分片中携带的预计播放时间点(如playtime)的差值,并确定该差值的绝对值是否大于预设阈值A。
在一些实施例中,可以通过确定该差值的绝对值与预设阈值A(例如1秒)的大小。该差值的绝对值大于预设阈值A,表明音频播放设备200与音频源设备100的播放进度差异较大,可执行步骤S605,以快速减小两个设备的播放进度差异。该差值的绝对值小于或等于预设阈值A,表明音频播放设备200与音频源设备100的播放进度差异较小,可以执行步骤S606-步骤S611。即通过调整音频播放设备200的播放速度,使得音频播放设备200与音频源设备100的播放进度一致,并使得音频播放设备200的播放速度与音频源设备100的播放速度一致。当然,在其他一些实施例中,不用区分音频分片实际播放时间点和预计播放时间点(如playtime)的差值的绝对值与预设阈值A的大小,直接通过后面步骤调整音频播放设备200的播放速度。也就是说,播放模块计算得到音频分片实际播放时间点和音频分片中携带的预计播放时间点(如playtime)的差值后,也可以不用比较该差值的绝对值与预设阈值A的大小,而是直接执行步骤S606。
S605、播放模块通知缓存模块删除或增加音频分片。
在确定音频分片的实际播放时间点与预计播放时间点差值大于预设阈值A,还进一步根据实际播放时间点和预计播放时间点的相对大小,确定删除一个或多个音频分片,还是增加一个或多个音频分片。
若音频分片的实际播放时间点晚于音频分片中携带的预期播放时间,表明音频播放设备200的播放进度慢于音频源设备100的播放进度,播放模块可以通知缓存模块删除部分音频分片,以便音频播放设备200的播放进度尽快与音频源设备100的播放进度相同。
若音频分片的实际播放时间点早于音频分片中携带的预期播放时间,表明音频播放设备200的播放进度快于音频源设备100的播放进度,播放模块可以通知缓存模块增加部分音频分片。其中,增加的音频分片可以是静音的音频数据,也可以是复制当前写入的音频分片数据或者是其他的音频数据,这样可以相当于音频播放设备200等待相应时间后播放后续的音频分片,可使得音频播放设备200与音频源设备100的播放进度相同。
后续,播放模块进行监测后续的音频分片的实际播放时间点和预计播放时间点的差值,判断差值是否大于预设阈值A,进一步采取相应的方法。
S606、播放模块向播速模块发送音频分片的实际播放时间点与其对应的差值。
由于要调整音频播放设备200的播放速度,因此需要计算音频播放设备200的实际播放时间点与差值的变化趋势,因此,当播放模块确定差值小于预设阈值A时,将该差值以及该差值对应的实际播放时间点发送给播速模块。
S607、播速模块存储音频分片的实际播放时间点与其对应的差值。
示例性的,播速模块将接收到的音频分片的实际播放时间点与其对应的差值记录在采样队列2中,采样队列2中存储的内容如表四所示。
表四
S608、播速模块根据音频分片的实际播放时间点与其对应的差值,计算播放速度的偏差。
当播速模块确定满足一定条件时,可以根据采样队列2中的数据计算音频播放设备200与音频源设备100的播放速度的偏差。该一定条件例如可以为采样队列2中的数据条数(如表四中每一行数据为一条数据)达到预定数量,例如100条等。
一些实施例中,调整系数计算模块可以对采样队列2中的数据进行线性拟合,得到音频播放设备200与音频源设备100的播放速度的偏差变化趋势。
具体的,以实际播放时间点为X轴,实际播放时间点和预计播放时间点的差值为Y轴,在二维平面上绘制离散点。并对离散点进行线性回归后得到捏合的直线,该直线的斜率(记为斜率2)表示着实际播放速度与预期播放速度的偏差,即每单位时间偏差多少时间。如图7中(1)所示,拟合的直线的斜率2为正值时,表示音频播放设备200的实际播放速度比预期播放速度慢,需要调快音频播放设备200的播放速度。如图7中(2)所示,拟合的直线斜率2为负值时,表示音频播放设备200的实际播放速度比预期播放速度快,需要调慢音频播放设备200的播放速度。若斜率2为零时,音频播放设备200的实际播放速度与预期播放速度相同,无需调整音频播放设备200的播放速度。
S609、播速模块根据播放速度的偏差计算目标播放速度。
其中,目标播放速度为期望的音频播放设备200的播放速度。那么,可以采用公式(3)计算目标播放速度:
目标播放速度=当前播放速度*(1+斜率2) 公式(3)
可以理解,当斜率2为正值时,根据公式(3)计算得到的目标播放速度将增大。当斜率2为负值时,根据公式(3)计算得到的目标播放速度将减小。
在另一些示例中,也可以设置预设阈值B。当斜率2的绝对值小于预设阈值B时,可认为音频播放设备200的实际播放时间点和预计播放时间点差异很小,可以不用调整音频播放设备200的播放速度。当斜率2的绝对值大于或等于预设阈值B时,再采用公式(3)调整音频播放设备200的播放速度。
S610、播速模块向播放模块发送目标播放速度。
S611、播放模块修改音频输出驱动的播放速度值为目标播放速度。
例如,播放模块将音频输出驱动的播放速度调整至当前速度的(1+斜率2)倍。
后续,播放模块进行监测后续的音频分片的实际播放时间点和预计播放时间点的差值,判断差值是否大于预设阈值A,进一步采取相应的方法。
综上,根据音频播放设备200的实际播放时间点与预计播放时间点的差异,调整音频播放设备200的播放速度,达到与音频源设备100播放速度(或投放速度)一致,可以避免因两个设备的速度不同,造成音频播放设备200需要频繁增删缓存内的音频分片。
在本申请的又一些实施例中,可以将上述图4中所述的技术方案与图6所述的技术方案进行组合。也就是说,先通过音频播放设备200中缓存的音频分片的数量变化趋势,计算调整系数,根据调整系数计算每个音频分片的预计播放时间点,即对齐音频播放设备200与音频源设备100预计开始播放音频分片的时间点。而后,音频播放设备200还可以进一步调整自身的播放速度,以使得自身的播放速度与音频源设备100的播放速度一致,使得音频播放设备200能在播放进度上与音频源设备100长时间地保持一致。
在本申请的又一些实施例中,音频播放设备200还连接有其他的音频播放设备,例如音频播放设备300。由音频播放设备200和音频播放设备300共同播放音频内容。那么,除了音频播放设备200的播放速度要与音频源设备100的播放速度(或投放速度)保持一致外,音频播放设备300的播放速度也要与音频源设备100的播放速度(或投放速度)保持一致。
图8示出了本申请提供的又一种音频播放方法的流程。如图8所示,该音频播放的方法包括步骤S401至步骤S406,以及步骤S801至步骤S805。
其中,步骤S401至步骤S406请参考图4中流程的相关内容。这里重点说明与图4中的流程的不同之处。
首先,音频播放设备200和音频播放设备300之间可以建立有线连接,也可以建立无线连接,其中无线连接的方式例如可以为蓝牙、WLAN、NFC等。
S801、音频播放设备200与音频播放设备300时间同步。
在一些示例中,音频播放设备200和音频播放设备300建立无线连接。在音频播放设备200和音频播放设备300在共同播放音频内容之前,音频播放设备200和音频播放设备300执行时间同步。例如,音频播放设备200可以在接收到音频流(即步骤S402)之后,或者,音频播放设备200向音频播放设备300发送音频分片(即在步骤S802)之后,或者,音频播放设备200向音频播放设备300发送启动音频播放(即步骤S804)之后,音频播放设备200与音频播放设备300执行时间同步。
具体的,音频播放设备200(例如,具体是时间同步模块)可以采用简单网络时间协议(simple network time protocol,SNTP)或高精度时间同步协议(precision timeprotocol,PTP)等,与音频播放设备300(例如,具体是时间同步模块)执行时间同步。
S802、音频播放设备200向音频播放设备300发送音频分片。
示例性的,在音频播放设备200的分发模块在执行完步骤S404c之后,一方面将得到的音频分片发送给自身的缓存模块(即步骤S404d),另一方面将得到的音频分片发送给音频播放设备300(例如,音频播放设备300的缓存模块)。
S803、音频播放设备300缓存音频分片。
示例性的,音频播放设备300的缓存模块缓存接收到的音频分片。
S804、音频播放设备200通知音频播放设备300启动音频播放。
示例性的,音频播放设备200的分发模块确定当前时间晚于或等于第一个音频分片的预计播放时间点时,一方面通知自身的播放模块启动音频播放(即步骤S405a),另一方面通知音频播放设备300(例如,音频播放设备300的播放模块)启动音频播放。
S805、音频播放设备300启动音频播放。
示例性的,音频播放设备300从自身的缓存模块中读取第一个音频分片以及之后的音频分片,开始播放。
需要注意的是,音频播放设备300接收到的音频分片中携带预计播放时间点,而该预计播放时间点是音频播放设备200根据音频源播放设备100和音频播放设备200之间的播放进度差异进行周期性更新的。
与音频播放设备200的播放过程相同(可参考步骤S405b中的相关内容),音频播放设备300在播放音频分片时,会将音频分片写入音频输出驱动(例如ALSA),并且调用音频输出驱动的接口读取当前写入音频分片的扬声器输出时间点。其中,该扬声器输出时间点可认为是音频播放设备300的实际播放当前写入音频分片的时间点,简称为当前写入音频分片的实际播放时间点。并通过比对当前写入音频分片的实际播放时间点和预计播放时间点,删除或增加音频播放设备300中缓存模块的音频分片,以使得音频播放设备300的播放速度与音频源设备100的播放速度(或投放速度)保持一致。
图9示出了本申请提供的又一种音频播放方法的流程。如图9所示,该方法包括步骤S401至步骤S404,步骤S405a,步骤S406,步骤S601至步骤S611,步骤S801至步骤S804,以及步骤901至步骤S911。
其中,本实施例中流程与图8中流程的不同之处在于,音频播放设备200记录各个音频分片的实际播放时间点与音频分片中携带的预计播放时间点的差异,并根据该差异调整音频播放设备200的播放速度,使得音频播放设备200的播放速度与音频源设备100的播放速度一致。即音频播放设备200执行步骤S601至步骤S611,具体内容可参考图6中流程的相关内容。
另外,与音频播放设备200的调整播放速度类似的,音频播放设备300也采用相似的方法调整自身的播放速度,使得音频播放设备300的播放速度也与音频源设备100的播放速度一致。即音频播放设备300执行步骤S901至步骤S911。在一些示例中,音频播放设备300还包括播速模块。
S901、音频播放设备300的播放模块从缓存模块获取音频分片的内容。
S902、播放模块将获取的音频分片内容写入音频输出驱动。
S903、播放模块调用音频输出驱动的接口查询当前写入的音频分片的扬声器预期输出时间,即当前写入的音频分片的实际播放时间点。
当播放模块向音频输出驱动写入音频分片后,播放模块还调用音频输出驱动的接口查询当前写入的音频分片的扬声器预期输出时间,该音频分片的扬声器预期输出时间可认为是该音频分片的实际播放时间点。
S904、播放模块计算音频分片实际播放时间点和音频分片中携带的预计播放时间点(如playtime)的差值,并确定该差值是否大于预设阈值A。
S905、播放模块通知缓存模块删除或增加音频分片。
S906、播放模块向播速模块发送音频分片的实际播放时间点与其对应的差值。
S907、播速模块存储音频分片的实际播放时间点与其对应的差值。
S908、播速模块根据音频分片的实际播放时间点与其对应的差值,计算播放速度的偏差。
S909、播速模块根据播放速度的偏差计算目标播放速度。
S910、播速模块向播放模块发送目标播放速度。
S911、播放模块修改音频输出驱动的播放速度值为目标播放速度。
其中,步骤S901至步骤S911的具体内容可参考图6中步骤S601至步骤S611的相关内容,这里不再赘述。
需要注意的是,步骤S901至步骤S911中计算得到的音频播放设备300的目标播放速度,与步骤S601至步骤S611中计算得到的音频播放设备200的目标播放速度相同或大致相同。
当然,在其他一些实施例中,音频播放设备200也可以采用现有的技术方案确定各个音频分片的预计播放时点,即不使用调整系数对各个音频分片的预计播放时间点进行调整,而是直接根据各个音频分片的实际播放时间点与预计播放时间点的差值,调整音频播放设备200的播放速度,直到与音频源设备的播放速度(或投放速度)保持一致。与此同时,音频播放设备300也可以直接根据自身的音频输出驱动确定各个音频分片的实际播放时间点,计算各个音频分片的实际播放时间点与预计播放时间点的差值,调整音频播放设备300的播放速度,直到与音频源设备的播放速度(或投放速度)保持一致。
在图8和图9中,音频播放设备200可以为主音箱或主耳机,音频播放设备300可以为从音箱或从耳机。可选地,音频播放设备200可以为主音箱,音频播放设备300可以为从耳机。可选地,音频播放设备200可以为主耳机,音频播放设备300可以为从音箱。
需要说明的是,音频播放设备不限于音箱、耳机等专门的音频播放设备,也可以为诸如带有扬声器的移动设备等的复合设备。
需要说明的是,本申请上述各实施例的任意特征的全部或部分,均可以自由组合所得到的技术方案,也在本申请的范围之内。
本申请实施例还提供一种芯片***。如图10所示,该芯片***包括至少一个处理器2101和至少一个接口电路1102。处理器2101和接口电路1102可通过线路互联。例如,接口电路1102可用于从其它装置(例如音频播放设备200的存储器)接收信号。又例如,接口电路1102可用于向其它装置(例如处理器2101)发送信号。示例性的,接口电路1102可读取存储器中存储的指令,并将该指令发送给处理器2101。当所述指令被处理器2101执行时,可使得电子设备执行上述实施例中的音频播放设备200(比如,音箱)执行的各个步骤。当然,该芯片***还可以包含其他分立器件,本申请实施例对此不作具体限定。
可以理解的是,上述终端等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
本申请实施例可以根据上述方法示例对上述终端等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (16)
1.一种音频播放方法,应用于第一音频播放设备,所述第一音频播放设备与所述音频源设备无线通信,其特征在于,所述方法包括:
接收到所述音频源设备发送的音频数据;
将所述音频数据划分为N个音频分片;
缓存所述N个音频分片;其中,根据第一调整系数得到每个音频分片的预计播放时间点;
依次播放每个音频分片;
周期性地采集缓存的音频分片的当前数量以及所述当前数量所对应的采集时间点;
在周期性地采集的时长达到预设时长后,或者,在周期性地采集的次数达到预设次数后,
根据每次采集的当前数量、以及每次采集的当前数量所对应的采集时间点,得到第二调整系数;根据所述第二调整系数得到后续每个音频分片的预计播放时间点;
依次播放后续的音频分片;
其中,N为大于等于2的正整数;所述第一调整系数为预设系数。
2.根据权利要求1所述的方法,其特征在于,在接收到所述音频源设备发送的音频数据之前,所述方法还包括:
接收到音频源设备发送的播放音频的指示。
3.根据权利要求1或2所述的方法,其特征在于,所述根据每次采集的当前数量、以及每次采集的当前数量所对应的采集时间点,得到第二调整系数;包括:
对每次采集的当前数量、每次采集的当前数量所对应的采集时间点进行线性拟合,得到第一斜率;
根据所述第一斜率得到第二调整系数。
4.根据权利要求1-3中任意一项所述的方法,其特征在于,所述周期性地采集缓存的音频分片的当前数量以及所述当前数量所对应的采集时间点;包括:
当任意一个音频分片的实际播放时间点和预计播放时间点两者的差值的绝对值大于第一阈值时,所述第一音频播放设备开始周期性地采集缓存的音频分片的当前数量以及所述当前数量所对应的采集时间点;
其中,所述音频分片的实际播放时间点为所述音频分片的扬声器预期输出时间点;所述音频分片的扬声器预期输出时间点是所述第一音频播放设备调用所述第一音频播放设备的音频输出驱动的接口查询得到。
5.一种音频播放方法,应用于第一音频播放设备,所述第一音频播放设备与所述音频源设备无线通信,其特征在于,所述方法包括:
接收到所述音频源设备发送的音频数据;
将所述音频数据划分为N个音频分片;
缓存所述N个音频分片;其中,根据第一调整系数得到每个音频分片的预计播放时间点;
依次播放每个音频分片;
在所述音频分片的实际播放时间点与预计播放时间点的差值的绝对值大于预设阈值后,调整缓存的音频分片的数量;
其中,所述音频分片的实际播放时间点为所述音频分片的扬声器预期输出时间点;所述音频分片的扬声器预期输出时间点通过所述第一音频播放设备调用所述第一音频播放设备的音频输出驱动的接口查询得到;N为大于等于2的正整数;所述第一调整系数为预设系数。
6.根据权利要求5所述的方法,其特征在于,所述在所述音频分片的实际播放时间点与预计播放时间点的差值的绝对值大于预设阈值后,调整缓存的音频分片的数量;包括:
在所述音频分片的实际播放时间点与预计播放时间点的差值的绝对值大于所述预设阈值,且所述差值为负值后,增加第一数量的音频分片;
在所述音频分片的实际播放时间点与预计播放时间点的差值的绝对值大于所述预设阈值,且所述差值为正值后,删除第一数量的音频分片。
7.根据权利要求6所述的方法,其特征在于,所述第一数量关联于所述差值的绝对值除以所述音频分片播放时长的商。
8.根据权利要求7所述的方法,其特征在于,所述第一数量为所述差值的绝对值除以所述音频分片播放时长的商。
9.根据权利要求6-8中任意一项所述的方法,其特征在于,增加的所述第一数量的音频分片为静音数据。
10.根据权利要求5-9中任意一项所述的方法,其特征在于,在所述音频分片的实际播放时间点与预计播放时间点的差值的绝对值小于或等于所述预设阈值后,调整所述第一音频播放设备的播放速度。
11.根据权利要求10所述的方法,其特征在于,在所述音频分片的实际播放时间点与预计播放时间点的差值的绝对值小于或等于所述预设阈值后,
采集所述音频分片的实际播放时间点,以及所述音频分片的实际播放时间点与预计播放时间点的差值;
在采集的次数达到预设次数后,或者,在采集的时长达到预设时长后,
对每次采集的实际播放时间点,每次采集的实际播放时间点对应的所述差值进行线性拟合,得到第二斜率;
获取所述第一音频播放设备的当前播放速度;
根据所述当前播放速度和所述第二斜率,得到调整后的播放速度;
以所述调整后的播放速度,依次播放后续的音频分片。
12.根据权利要求5-11中任意一项所述的方法,其特征在于,所述第一音频播放设备连接有第二音频播放设备,所述方法还包括:
向所述第二音频播放设备发送所述N个音频分片。
13.根据权利要求12所述的方法,其特征在于,在所述第一音频播放设备播放第一个音频分片之前,所述方法还包括:
向所述第二音频播放设备发送开始播放音频分片的指示。
14.一种第一音频播放设备,其特征在于,包括处理器、音频输出装置以及存储器,所述音频输出装置和所述存储器都与所述处理器耦合,所述存储器用于存储计算机程序,当所述计算机程序被所述处理器执行时,使得所述第一音频播放设备执行如权利要求1-13中任意一项所述的方法。
15.一种计算机可读存储介质,其特征在于,包括计算机程序,当所述计算机程序在第一音频播放设备上运行时,使得所述第一音频播放设备执行如权利要求1-13中任一项所述的方法。
16.一种计算机程序产品,其特征在于,当计算机程序产品在计算机上运行时,使得计算机执行如权利要求1-13中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110221879.2A CN114974321B (zh) | 2021-02-27 | 2021-02-27 | 一种音频播放方法、设备及*** |
PCT/CN2021/136897 WO2022179246A1 (zh) | 2021-02-27 | 2021-12-09 | 一种音频播放方法、设备及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110221879.2A CN114974321B (zh) | 2021-02-27 | 2021-02-27 | 一种音频播放方法、设备及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114974321A CN114974321A (zh) | 2022-08-30 |
CN114974321B true CN114974321B (zh) | 2023-11-03 |
Family
ID=82974161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110221879.2A Active CN114974321B (zh) | 2021-02-27 | 2021-02-27 | 一种音频播放方法、设备及*** |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114974321B (zh) |
WO (1) | WO2022179246A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115866309B (zh) * | 2022-11-29 | 2023-09-22 | 广州后为科技有限公司 | 一种支持多路视频同步的音视频缓存方法和装置 |
CN115629733B (zh) * | 2022-12-20 | 2023-03-28 | 翱捷科技(深圳)有限公司 | 音频播放方法、芯片、***及存储介质 |
CN117707752A (zh) * | 2023-05-31 | 2024-03-15 | 荣耀终端有限公司 | 音频中爆音的消除方法、电子设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107801080A (zh) * | 2017-11-10 | 2018-03-13 | 普联技术有限公司 | 一种音视频同步方法、装置及设备 |
CN109918038A (zh) * | 2019-01-14 | 2019-06-21 | 珠海慧联科技有限公司 | 一种音频播放速度同步方法及*** |
CN111918093A (zh) * | 2020-08-13 | 2020-11-10 | 腾讯科技(深圳)有限公司 | 直播数据处理方法、装置、计算机设备和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105812902B (zh) * | 2016-03-17 | 2018-09-04 | 联发科技(新加坡)私人有限公司 | 数据播放的方法、设备及*** |
KR20190079613A (ko) * | 2016-09-14 | 2019-07-05 | 소닉센서리, 인크. | 동기화를 구비한 멀티-디바이스 오디오 스트리밍 시스템 |
CN108495239B (zh) * | 2018-01-17 | 2020-09-29 | 深圳聚点互动科技有限公司 | 多设备间音频精确同步播放的方法、装置、设备及存储介质 |
CN110134362A (zh) * | 2019-05-16 | 2019-08-16 | 北京小米移动软件有限公司 | 音频播放方法、装置、播放设备以及存储介质 |
-
2021
- 2021-02-27 CN CN202110221879.2A patent/CN114974321B/zh active Active
- 2021-12-09 WO PCT/CN2021/136897 patent/WO2022179246A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107801080A (zh) * | 2017-11-10 | 2018-03-13 | 普联技术有限公司 | 一种音视频同步方法、装置及设备 |
CN109918038A (zh) * | 2019-01-14 | 2019-06-21 | 珠海慧联科技有限公司 | 一种音频播放速度同步方法及*** |
CN111918093A (zh) * | 2020-08-13 | 2020-11-10 | 腾讯科技(深圳)有限公司 | 直播数据处理方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2022179246A1 (zh) | 2022-09-01 |
CN114974321A (zh) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114974321B (zh) | 一种音频播放方法、设备及*** | |
US10809969B2 (en) | Systems and methods for audio playback | |
US20210067874A1 (en) | Method, device, loudspeaker equipment and wireless headset for playing audio synchronously | |
US10147440B2 (en) | Method for playing data and apparatus and system thereof | |
KR100711177B1 (ko) | 방송국 동기 방법 및 휴대 단말기 | |
CN110838854B (zh) | 蓝牙无线装置以及使用于无线装置的方法 | |
RU2367112C2 (ru) | Способы и устройства для передачи данных в мобильный блок обработки данных | |
WO2020211535A1 (zh) | 网络延迟控制方法、装置、电子设备及存储介质 | |
CN110636600B (zh) | 一种无线设备音频同步播放的方法 | |
JP2004007140A (ja) | 音声再生装置および同装置で用いられる音声再生制御方法 | |
WO2017000554A1 (zh) | 音视频文件生成方法、装置及*** | |
CN110636349B (zh) | 一种无线设备音频同步播放的方法 | |
US10601914B2 (en) | Method and apparatus for synchronizing applications' consumption of remote data | |
CN112165645A (zh) | 播放设备的控制方法、播放设备及计算机存储介质 | |
US20180158468A1 (en) | Device and method for synchronizing speakers | |
WO2017190346A1 (zh) | 音视频数据同步方法和装置 | |
CN115833984A (zh) | 时钟同步方法、装置、电子设备及可读存储介质 | |
WO2021114950A1 (zh) | 一种多路http通道复用的方法及终端 | |
CN113613221A (zh) | Tws主设备、tws从设备、音频设备及*** | |
CN113473425A (zh) | 一种基于pc-spdif连接的音频信号蓝牙低延时传输方法 | |
EP4097562A1 (en) | Receiver for high precision synchronization in a shared medium | |
US11689690B2 (en) | Method and device for audio and video synchronization | |
KR20210079017A (ko) | 디지털 콘텐츠의 비디오 및 오디오 재생 동기화를 맞추는 방법 및 이를 이용한 장치 | |
WO2023273601A1 (zh) | 一种音频同步方法及音频播放设备、音频源、存储介质 | |
WO2024093570A1 (zh) | 一种投屏方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |