CN111556361B - 蓝牙音频播放的缓冲区设置方法、装置、设备及存储介质 - Google Patents

蓝牙音频播放的缓冲区设置方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111556361B
CN111556361B CN202010358112.XA CN202010358112A CN111556361B CN 111556361 B CN111556361 B CN 111556361B CN 202010358112 A CN202010358112 A CN 202010358112A CN 111556361 B CN111556361 B CN 111556361B
Authority
CN
China
Prior art keywords
buffer
size
bluetooth
delay
playing
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
Application number
CN202010358112.XA
Other languages
English (en)
Other versions
CN111556361A (zh
Inventor
李建全
周小星
李伟胜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010358112.XA priority Critical patent/CN111556361B/zh
Publication of CN111556361A publication Critical patent/CN111556361A/zh
Application granted granted Critical
Publication of CN111556361B publication Critical patent/CN111556361B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/439Processing of audio elementary streams
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B31/00Arrangements for the associated working of recording or reproducing apparatus with related apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/10Flow control between communication endpoints
    • H04W28/14Flow control between communication endpoints using intermediate storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本申请是关于一种蓝牙音频播放的缓冲区设置方法、装置、设备及存储介质,涉及蓝牙技术领域。该方法包括:将缓冲区的大小初始化为第一缓冲区大小;获取指定周期内,所述缓冲区的第一稳定状态;响应于所述第一稳定状态指示蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件,将所述缓冲区的大小调整为第二缓冲区大小。本方案能够实现对缓冲区大小的动态调整,能够准确的设置蓝牙音频播放所使用的缓冲区的大小,从而实现满足蓝牙播放设备对缓冲区大小的要求的前提下,缩短蓝牙播放设备在播放音频的过程中播放延时,提高蓝牙音频的播放效果。

Description

蓝牙音频播放的缓冲区设置方法、装置、设备及存储介质
技术领域
本申请实施例涉及蓝牙技术领域,特别涉及一种蓝牙音频播放的缓冲区设置方法、装置、设备及存储介质。
背景技术
随着蓝牙技术的不断发展,蓝牙音箱或者蓝牙耳机等基于蓝牙连接的音频播放设备,以其便捷的使用方式,越来越受到用户的欢迎。
在相关技术中,蓝牙播放设备播放的音频数据由蓝牙源设备提供。例如,蓝牙源设备中可以设置一缓冲区,该缓冲区用于缓冲蓝牙源设备产生的音频数据,蓝牙播放设备通过蓝牙连接,从该缓冲区中拉取音频数据并进行播放。由于市面上的蓝牙源设备和蓝牙播放设备的种类繁多,为了能够适应不同品牌和不同类型的蓝牙播放设备,蓝牙源设备中的缓冲区的大小通常设置为一个较大的值。
然而,相关技术的缓冲区设置方案需要设置较大的缓冲区,而较大的缓冲区意味着蓝牙播放设备在播放音频的过程中存在较大的播放延时,从而影响蓝牙音频的播放效果。
发明内容
本申请实施例提供了一种蓝牙音频播放的缓冲区设置方法、装置、设备及存储介质,可以实现满足蓝牙播放设备对缓冲区大小的要求的前提下,缩短蓝牙播放设备在播放音频的过程中播放延时,提高蓝牙音频的播放效果,技术方案如下:
一方面,提供了一种蓝牙音频播放的缓冲区设置方法,所述方法包括:
将缓冲区的大小初始化为第一缓冲区大小;所述缓冲区用于缓冲待提供给蓝牙播放设备的音频数据;所述缓冲区的大小用于指示所述缓冲区中的音频数据的最大播放时长;
获取指定周期内,所述缓冲区的第一稳定状态,所述第一稳定状态用于指示所述蓝牙播放设备播放的蓝牙音频的延时是否满足稳定条件;
响应于所述第一稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件,将所述缓冲区的大小调整为第二缓冲区大小;所述第二缓冲区大小不同于所述第一缓冲区大小。
一方面,提供了一种蓝牙音频播放方法,所述方法包括:
在第一时间段内,通过蓝牙播放设备以第一平均延时播放蓝牙音频;
响应于在所述第一时间段内播放的蓝牙音频存在卡顿,在第二时间段内,通过所述蓝牙播放设备以第二平均延时播放蓝牙音频;所述第二时间段位于所述第一时间段之后,且所述第二平均延时大于所述第一平均延时;
响应于在所述第一时间段内播放的蓝牙音频不存在卡顿,在第三时间段内,保持通过所述蓝牙播放设备以所述第二平均延时播放蓝牙音频。
另一方面,提供了一种蓝牙音频播放的缓冲区设置装置,所述装置包括:
初始化模块,用于将缓冲区的大小初始化为第一缓冲区大小;所述缓冲区用于缓冲待提供给蓝牙播放设备的音频数据;所述缓冲区的大小用于指示所述缓冲区中的音频数据的最大播放时长;
状态获取模块,用于获取指定周期内,所述缓冲区的第一稳定状态,所述第一稳定状态用于指示所述蓝牙播放设备播放的蓝牙音频的延时是否满足稳定条件;
缓冲区调整模块,用于响应于所述第一稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件,将所述缓冲区的大小调整为第二缓冲区大小;所述第二缓冲区大小不同于所述第一缓冲区大小。
在一种可能的实现方式中,所述状态获取模块,用于,
获取所述指定周期内,所述缓冲区在各个时间点上的填充占比,所述填充占比用于指示对应的时间点上缓冲的音频数据的播放时长与所述最大播放时长的比例;
基于所述缓冲区在各个时间点上的填充占比,获取第一时间占比;所述第一时间占比是所述缓冲区的填充占比满足第一条件的时长,占所述指定周期的周期时长的比例;所述第一条件是所述缓冲区的填充占比大于第一填充占比阈值;
响应于所述第一时间占比不大于第一时间占比阈值,确定所述缓冲区的第一稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时满足稳定条件;
响应于所述第一时间占比大于所述第一时间占比阈值,确定所述缓冲区的第一稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件。
在一种可能的实现方式中,所述缓冲区调整模块,用于,
响应于所述第一稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件,将所述缓冲区的大小由所述第一缓冲区大小增加为第二缓冲区大小;
将所述缓冲区的大小重新初始化为所述第二缓冲区大小。
在一种可能的实现方式中,所述装置还包括:
调取模块,用于在初始化模块将缓冲区的大小初始化为第一缓冲区大小之前,调取缓冲区候选集中尚未被调取的缓冲区大小中,最小的一个缓冲区大小作为所述第一缓冲区大小;所述缓冲区候选集中包含至少一个按照从小到大的顺序排列的缓冲区大小;
所述缓冲区调整模块,用于,
响应于所述第一稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件,且所述第一缓冲区大小是所述缓冲区候选集中最大的缓冲区大小,执行将所述缓冲区的大小调整为第二缓冲区状态的步骤。
在一种可能的实现方式中,所述调取模块,还用于响应于所述第一稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件,且所述第一缓冲区大小不是所述缓冲区候选集中最大的缓冲区大小,从所述缓冲区候选集中调取所述第一缓冲区大小的下一个缓冲区大小,作为新的第一缓冲区大小;
所述初始化模块,还用于将所述缓冲区的大小重新初始化为所述新的第一缓冲区大小。
在一种可能的实现方式中,所述装置还包括:
缓冲区大小确定模块,用于响应于所述第一稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时满足稳定条件,确定第三缓冲区大小,所述第三缓冲区大小是小于所述第一缓冲区大小,且不属于所述缓冲区候选集的缓冲区大小;
所述初始化模块,还用于将所述缓冲区的大小重新初始化为所述第三缓冲区大小;
所述状态获取模块,还用于获取所述缓冲区的第二稳定状态,所述第二稳定状态用于指示所述缓冲区的大小是所述第三缓冲区大小是,所述蓝牙播放设备播放的蓝牙音频的延时是否满足稳定条件;
缓冲区候选集调整模块,用于根据所述缓冲区的第二稳定状态,对所述缓冲区候选集中的缓冲区大小进行调整。
在一种可能的实现方式中,所述缓冲区大小确定模块,用于,
响应于所述第一缓冲区大小是所述缓冲区候选集中的最小缓冲区大小,确定所述第三缓冲区大小是所述第一缓冲区大小的一半;
响应于所述第一缓冲区大小不是所述缓冲区候选集中的最小缓冲区大小,确定所述第三缓冲区大小是所述第一缓冲区大小与所述第一缓冲区大小的前一缓冲区大小的平均值。
在一种可能的实现方式中,所述缓冲区候选集调整模块,用于,
响应于所述第二稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时满足稳定条件,将所述缓冲区候选集中的所述第一缓冲区大小按照第一指定步长进行减小;
响应于所述第二稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件,则将所述缓冲区候选集中处于所述第一缓冲区大小的前一个缓冲区大小按照第二指定步长进行增大。
在一种可能的实现方式中,所述状态获取模块,还用于获取所述缓冲区的第三稳定状态,所述第三稳定状态用于指示所述缓冲区的大小是所述第二缓冲区大小时,所述蓝牙播放设备播放的蓝牙音频的延时是否满足稳定条件;
所述缓冲区候选集调整模块,还用于响应于所述第三稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时满足稳定条件,将所述第二缓冲区大小添加至所述缓冲区候选集中的末尾。
在一种可能的实现方式中,所述缓冲区候选集调整模块,还用于,
响应于所述缓冲区候选集中存在至少两个缓冲区大小,获取所述缓冲区候选集中的相邻两个缓冲区大小;
响应于所述相邻两个缓冲区大小之间的大小间隔小于第一间隔阈值,且不小于第二间隔阈值,将所述相邻两个缓冲区大小合并为所述相邻两个缓冲区大小的平均值;
响应于所述相邻两个缓冲区大小之间的大小间隔小于所述第二间隔阈值,则删除所述相邻两个缓冲区大小中的前一个缓冲区大小。
在一种可能的实现方式中,所述方法由蓝牙源设备执行,所述装置还包括:
信息上报模块,用于响应于所述蓝牙播放设备播放的蓝牙音频的延时满足稳定条件,向所述服务器上报稳定延时信息,所述稳定延时信息包括所述蓝牙源设备的设备信息、所述蓝牙播放设备的设备信息、以及当前所述缓冲区的大小;
暂停模块,用于响应于接收到所述服务器返回的结束调整指令,暂停执行所述获取指定周期内,所述缓冲区的第一稳定状态的步骤;
其中,所述结束调整指令是所述服务器根据本次播放过程中上传的各个稳定延时信息,确定出所述缓冲区的大小发生异常抖动时下发的指令。
又一方面,提供了一种计算机设备,所述计算机设备包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上所述的蓝牙音频播放的缓冲区设置方法。
又一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上所述的蓝牙音频播放的缓冲区设置方法。
本申请提供的技术方案可以包括以下有益效果:
通过首先将缓冲区的大小初始化为一个第一缓冲区大小,并在指定周期内,获取指示蓝牙播放设备从缓冲区中获取音频数据并播放的蓝牙音频的延时是否满足稳定条件,以此来确定是否需要对缓冲区进行调整,并在确定需要调整时,对缓冲区进行调整,从而根据蓝牙音频的延时是否稳定,实现对缓冲区大小的动态调整,能够准确的设置蓝牙音频播放所使用的缓冲区的大小,从而实现满足蓝牙播放设备对缓冲区大小的要求的前提下,缩短蓝牙播放设备在播放音频的过程中播放延时,提高蓝牙音频的播放效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是根据一示例性实施例示出的一种蓝牙音频播放系统的结构示意图;
图2是图1所示实施例涉及的音频缓冲播放模型的模型示意图;
图3是图1所示实施例涉及的缓冲数据变化示意图;
图4是根据一示例性实施例实施例示出的一种蓝牙音频播放的缓冲区设置示意图;
图5是图4所示实施例涉及的一种缓冲区的动态调整示意图;
图6是根据一示例性实施例示出的蓝牙音频播放的缓冲区设置方法的方法流程图;
图7是图6所示实施例涉及的一种缓冲区调整的系统组件架构图;
图8是图6所示实施例涉及的缓冲区候选集的使用逻辑示意图;
图9是图6所示实施例涉及的后台控制策略示意图;
图10是图6所示实施例涉及的延时自适应优化的手动控制逻辑示意图;
图11是本申请一个示例性实施例提供的蓝牙音频播放的缓冲区设置装置的方框图;
图12是根据一示例性实施例示出的一种计算机设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
本申请提出了一种蓝牙音频播放的缓冲区设置方案,该方案能够准确的设置蓝牙音频播放所使用的缓冲区的大小,从而实现满足蓝牙播放设备对缓冲区大小的要求的前提下,缩短蓝牙播放设备在播放音频的过程中播放延时,提高蓝牙音频的播放效果。为了便于理解,首先对本申请涉及到的系统架构进行介绍。
图1是根据一示例性实施例示出的一种蓝牙音频播放系统的结构示意图。该系统包括:服务器120、若干个蓝牙源设备140以及,若干个蓝牙播放设备160。
服务器120是一台服务器,或者包括若干台服务器,或者是一个虚拟化平台,或者是一个云计算服务中心等,本申请不做限制。
蓝牙源设备140可以是具有蓝牙音频推送功能的终端设备,比如,蓝牙源设备140可以是手机、平板电脑、电子书阅读器、智能眼镜、智能手表、膝上型便携计算机和台式计算机等等。
蓝牙播放设备160可以是具有蓝牙音频播放功能的终端设备,比如,蓝牙播放设备160可以是蓝牙耳机、蓝牙音箱等等。
蓝牙源设备140和蓝牙播放设备160都是支持蓝牙功能的终端设备,且蓝牙源设备140和蓝牙播放设备160之间通过蓝牙连接相连。
其中,服务器120和蓝牙源设备140之间通过通信网络相连。可选的,通信网络是有线网络或无线网络。
可选的,该系统还可以包括管理设备(图1未示出),该管理设备与服务器120之间通过通信网络相连。可选的,通信网络是有线网络或无线网络。
可选的,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合)。在一些实施例中,使用包括超文本标记语言(Hyper Text Mark-up Language,HTML)、可扩展标记语言(Extensible MarkupLanguage,XML)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(Secure Socket Layer,SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(Internet ProtocolSecurity,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
在本申请实施例中,蓝牙源设备140产生蓝牙音频的音频数据,并将蓝牙音频缓存在缓冲区中,蓝牙播放设备160可以从缓冲区读取音频数据,并进行播放。即蓝牙源设备140和蓝牙播放设备160可以构成音频缓冲播放模型。
请参考图2,其示出了本申请实施例涉及的音频缓冲播放模型的模型示意图。如图2所示,音频缓冲播放模型包括音频生产者21、音频缓冲区22以及音频播放子系统23,其中,音频生产者21和音频缓冲区22可以设置在蓝牙源设备140中,比如,音频生产者21可以是蓝牙源设备140中的应用程序,音频缓冲区22可以是该应用程序在蓝牙源设备140的内存中申请的一块供蓝牙连接使用的缓冲区。音频播放子系统23可以设置在蓝牙播放设备160中,比如,音频播放子系统23可以包括蓝牙播放设备160中的蓝牙组件和音频播放组件(包括音频处理电路和扬声器等等)。上述图2中各个组件的功能如下:
1)音频生产者21:生产连续音频流数据,填充音频缓冲区;
2)音频缓冲区22:固定缓存区大小,缓存音频流数据;
3)音频播放子系统23:以一定频率从音频缓冲区获取音频流数据,用于音频播放。
请参考图3,其示出了本申请实施例涉及的缓冲数据变化示意图。如图3所示,在上述的音频缓冲播放模型中,音频缓冲区主要包含三个状态:
1)填充期:音频数据向缓冲区填充,在音频数据填充满缓冲区后,启动音频播放子系统;
2)下降期:音频播放子系统启动初期频率不稳定,获取音频数据较多,导致缓冲区中缓冲的音频数据下降;
3)稳定期:音频播放子系统获取频率稳定,音频缓冲区中缓冲的音频数据的数据量基本保持稳定波动。
如图3所示,当缓冲区中的音频数据的数据量高于正常阈值时,音频播放正常,当缓冲区中的音频数据的数据量低于该正常阈值时,容易发生卡顿,因此,蓝牙播放过程中是否卡顿,通常情况下取决于稳定期的音频缓冲的数据量是否稳定在正常波动范围内(即缓冲区中的音频数据的数据量高于正常阈值)。
其中,上述蓝牙播放过程中,稳定期的音频缓冲的数据量是否稳定在正常波动范围内,与缓冲区的大小有着很大的关系,其中,缓冲区越大,缓冲区中可以缓冲的音频数据也越多,相应的,缓冲区中缓冲的音频数据的数据量稳定在正常波动范围内的可能性也越高,越不容易发生卡顿,但是,蓝牙播放设备侧的播放延时也相应越大;反之,缓冲区越小,缓冲区中可以缓冲的音频数据也越小,蓝牙播放设备侧的播放延时也越小,但是,缓冲区中缓冲的音频数据的数据量稳定在正常波动范围内的可能性也越低,越容易发生卡顿。
为了满足蓝牙播放过程中对缓冲区大小的要求,尽量避免卡顿,同时兼顾蓝牙播放的低延时要求,本申请提供一种对蓝牙音频播放的缓冲区进行动态设置的方案。
图4是根据一示例性实施例实施例示出的一种蓝牙音频播放的缓冲区设置示意图。其中,该缓冲区设置流程可以由计算机设备执行。例如,该计算机设备可以是上述图1所示系统中的蓝牙源设备140。该蓝牙音频播放的缓冲区设置流程可以如下:
S41,将缓冲区的大小初始化为第一缓冲区大小;该缓冲区用于缓冲待提供给蓝牙播放设备的音频数据;该缓冲区的大小用于指示该缓冲区中的音频数据的最大播放时长。
在本申请实施例中,由于不同的格式或者采样率的音频,单位播放时长对应的音频数据的数据量可能存在很大的差异,因此,为了便于对不同的格式或者采样率的音频进行统一的处理,在本申请实施例中,缓冲区的大小可以通过缓冲区中可以缓冲的音频数据的最大播放时长来表示。
可选的,将缓冲区的大小初始化为第一缓冲区大小,是指将缓冲区的大小设置为第一缓冲区大小,即将缓冲区的大小设置为,最多可以缓冲该第一缓冲区大小对应的最大播放时长的音频数据。
S42,获取指定周期内,该缓冲区的第一稳定状态,该第一稳定状态用于指示蓝牙播放设备播放的蓝牙音频的延时是否满足稳定条件。
S43,响应于该第一稳定状态指示蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件,将缓冲区的大小调整为第二缓冲区大小。
其中,第二缓冲区大小不同于第一缓冲区大小。
在本申请实施例中,当第一稳定状态指示蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件时,通常意味着缓冲区的大小未能较好的兼顾播放延时与卡顿,此时,可以对该缓冲区的大小进行调整。
可选的,在本申请实施例中,在对上述缓冲区的大小进行调整后,计算机设备可以返回步骤S41,重新设置缓冲区大小,然后在新的缓冲区大小的情况下,重新确定缓冲区的新的稳定状态,以确定是否需要继续调整缓冲区的大小。
可选的,在本申请实施例中,如果第一稳定状态指示该蓝牙播放设备播放的蓝牙音频的延时满足稳定条件,则可以保持缓冲区的大小为该第一缓冲区大小不变,返回步骤S42,重新确定缓冲区的新的稳定状态,以确定后续是否需要调整缓冲区的大小。
综上所述,本申请实施例所示的方案,首先将缓冲区的大小初始化为一个第一缓冲区大小,并在指定周期内,获取指示蓝牙播放设备从缓冲区中获取音频数据并播放的蓝牙音频的延时是否满足稳定条件,以此来确定是否需要对缓冲区进行调整,并在确定需要调整时,对缓冲区进行调整,从而根据蓝牙音频的延时是否稳定,实现对缓冲区大小的动态调整,能够准确的设置蓝牙音频播放所使用的缓冲区的大小,从而实现满足蓝牙播放设备对缓冲区大小的要求的前提下,缩短蓝牙播放设备在播放音频的过程中播放延时,提高蓝牙音频的播放效果。
在一种可能的实现方式中,上述步骤S42可以实现为以下子步骤:
S42a,获取指定周期内,缓冲区在各个时间点上的填充占比,该填充占比用于指示对应的时间点上缓冲的音频数据的播放时长与该最大播放时长的比例。
可选的,上述缓冲区中填充的音频数据的数据量也通过音频数据可以播放的时长来表示,相应的,上述填充占比,可以是指某一个时间点上,缓冲区中缓冲的音频数据的播放时长,占该缓冲区中最多可以缓冲的音频数据的播放时长(即上述最大播放时长)的比例数值。
在本申请实施例中,通过统计一段时间(即上述指定周期)内,缓冲区在各个时间点上的填充占比,即可以得到缓冲区的稳定状态,即确定缓冲区中的音频数据的播放时长是否在该段时间内保持满足稳定条件。其中,该缓冲区中的音频数据的播放时长是否稳定,可以体现为蓝牙播放设备侧播放蓝牙音频的延时是否满足稳定条件。
可选的,通过缓冲区在各个时间点上的填充占比确定缓冲区的第一稳定状态的过程可以后续S42b至S42d所示。
S42b,基于该缓冲区在各个时间点上的填充占比,获取第一时间占比;该第一时间占比是该缓冲区的填充占比满足第一条件的时长,占该指定周期的周期时长的比例;该第一条件是该缓冲区的填充占比大于第一填充占比阈值。
S42c,响应于该第一时间占比不大于第一时间占比阈值,确定该缓冲区的第一稳定状态指示该蓝牙播放设备播放的蓝牙音频的延时满足稳定条件。
S42d,响应于该第一时间占比大于该第一时间占比阈值,确定该缓冲区的第一稳定状态指示该蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件。
基于上述步骤S42b至S42d,在一种可能的实现方式中,上述步骤S43可以实现为以下子步骤:
S43a,响应于该第一稳定状态指示该蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件,将该缓冲区的大小由该第一缓冲区大小增加为第二缓冲区大小;
S43b,将该缓冲区的大小重新初始化为该第二缓冲区大小。
在本申请实施例中,计算机设备刚开始时可以设置一个较低的缓冲区大小,在上述指定周期内,如果缓冲区中缓冲的音频数据的填充占比长期处在一个较高的比例,则说明缓冲区在大部分时间内处于接近满载的状态,这说明缓冲区的大小不足以满足缓冲需求,容易发生卡顿,也就是蓝牙音频的延时不满足稳定条件,此时可以将缓冲区大小调大,反之,如果缓冲区中缓冲的音频数据的填充占比长期处在一个较低的比例,则说明缓冲区在大部分时间内未处于接近满载的状态,这说明缓冲区的大小足以满足缓冲需求,不容易发生卡顿,也就是蓝牙音频的延时满足稳定条件,此时可以保持缓冲区不变,通过重复执行上述稳定状态的检测过程,可以实现对缓冲区的动态调整。
在本申请实施例中,由于缓冲区的大小与蓝牙播放设备播放蓝牙音频的延时有很大的关系,也就是说,缓冲区引起的延时是蓝牙播放设备播放蓝牙音频的延时中的重要组成部分,因此,在本申请实施例中,缓冲区的大小也可以被称为缓冲区延时。
例如,上述缓冲区的动态调整过程可以如下:
定义以下变量:
1)缓冲区大小:Delay,单位为毫秒(ms);
2)稳定阈值:Threshold,单位为百分比(%);
3)低于稳定阈值时间最大占比:Error,单位为百分比(%);
4)统计时长:检测周期时长,单位为秒(s);
请参考图5,其示出了本申请实施例涉及的一种缓冲区的动态调整示意图。如图5所示,该缓冲区的动态调整步骤如下:
S51,初始化读取并设置低延时的缓冲区大小Delay:如果Delay≤0(即当前尚未开始播放蓝牙音频,或者说,尚未初始化过缓冲区),则初始化Delay=20ms;否则读取保存的延时值。初始化范围阈值Threshold,Duration(即上述统计时长)和Error。
S52,初始化检测时长变量Dur=0,错误时长变量Err=0;启动音频播放子系统,定时执行回调,回调间隔Delta(ms);
S53,开始循环统计检测,Dur+=Delta。判断缓冲区填充时长BufferLen,是否高于Threshold,如果是,累加Err+=Delta时长;
S54,重复执行S53,直至Dur≥Duration。判断Err占比是否超过预设占比阈值Error。如果否,目前已经延时处于稳定,保存延时值,跳到S52继继续循环检测;否则delay+=10ms(将缓冲区的大小增加10ms),跳到S52继续执行。
可选的,从用户体验的角度来说,上述调整过程体现在蓝牙播放设备侧的执行情况可以如下:
步骤1,在第一时间段内,通过蓝牙播放设备以第一平均延时播放蓝牙音频。
步骤2,响应于在该第一时间段内播放的蓝牙音频存在卡顿,在第二时间段内,通过该蓝牙播放设备以第二平均延时播放蓝牙音频;该第二时间段位于该第一时间段之后,且该第二平均延时大于该第一平均延时。
步骤3,响应于在该第一时间段内播放的蓝牙音频不存在卡顿,在第三时间段内,保持通过该蓝牙播放设备以该第二平均延时播放蓝牙音频。
也就是说,刚开始时,蓝牙源设备以较小的缓冲区来缓冲蓝牙音频,相应的在蓝牙播放设备侧,也以平均较低的延时播放蓝牙音频,此时,由于过分要求低延时,可能出现卡顿的情况,此后,蓝牙源设备通过检测缓冲区的稳定状态,逐步提高了缓冲区大小,相应的,蓝牙播放设备侧在后续一个或者多个指定周期内,播放蓝牙音频的播放延时也逐步增加,直至播放延时稳定时,卡顿现象也很少或者消失。
在本申请上述实施例中,缓冲区自适应调整时的调整策略是按照从小到大的顺序进行调整。在本申请实施例的另一种可能的实现方式中,在自适应调整过程中,可以将缓冲区大小从大到小进行调整,也就是说,上述步骤S42b至S42d可以替换为以下子步骤:
S43e,基于该缓冲区在各个时间点上的填充占比,获取第二时间占比;该第二时间占比是该缓冲区的填充占比满足第二条件的时长,占该指定周期的周期时长的比例;该第二条件是该缓冲区的填充占比小于第二填充占比阈值。
S43f,响应于该第二时间占比不大于第二时间占比阈值,确定该缓冲区的第一稳定状态指示该蓝牙播放设备播放的蓝牙音频的延时满足稳定条件。
S43g,响应于该第二时间占比大于该第二时间占比阈值,确定该缓冲区的第一稳定状态指示该蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件。
基于上述步骤S42e至S42g,在一种可能的实现方式中,上述步骤S43可以实现为以下子步骤:
S43c,响应于该第一稳定状态指示该蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件,将该缓冲区的大小由该第一缓冲区大小减小为第四缓冲区大小;
S43d,将该缓冲区的大小重新初始化为该第四缓冲区大小。
在本申请实施例中,计算机设备刚开始时可以设置一个较大的缓冲区大小,在上述指定周期内,如果缓冲区中缓冲的音频数据的填充占比长期处在一个较低的比例,则说明缓冲区在大部分时间内处于接近空载的状态,这说明缓冲区的大小足以满足缓冲需求,不容易发生卡顿,此时可以将缓冲区大小调小,以适当减小延时,反之,如果缓冲区中缓冲的音频数据的填充占比长期未处在一个较高的比例,则说明缓冲区在大部分时间内不处于接近空载的状态,这说明缓冲区的大小不会太大,引起的延时适中,此时可以保持缓冲区不变,通过重复执行上述稳定状态的检测过程,可以实现对缓冲区的动态调整。
在本申请上述实施例中,以蓝牙源设备通过获取缓冲区在各个时间点上的填充占比,来进一步确定缓冲区的稳定状态为例,对如何获取缓冲区的稳定状态的步骤进行介绍。可选的,蓝牙源设备也可以通过直接获取缓冲区的填充占比之外的方式来获取缓冲区的稳定状态。本申请实施例对于获取缓冲区的稳定状态的方式不做限定。
比如,在一种可能的实现方式中,蓝牙源设备的系统层具体生成缓冲区的稳定状态的功能,并提供调用上述稳定状态的应用程序接口(Application ProgrammingInterface,API),蓝牙源设备中的音频生产者对应的应用程序可以调用该API获取缓冲区的稳定状态。
再比如,在一种可能的实现方式中,上述缓冲区的稳定状态也可以通过蓝牙音频播放中的卡顿情况来获取,比如,蓝牙源设备中的音频生产者对应的应用程序可以通过系统层获取蓝牙播放设备在指定周期内播放蓝牙音频时的卡顿情况,并根据卡顿情况确定缓冲区的稳定状态。
对于可能会更换使用蓝牙耳机的用户来说,如果每次延时都从较低的缓冲区大小(比如上述20ms),或者从上一次延时值开始预测,则可能需要多次调整才能达到较好的效果,导致调整估计的时间可能会比较长,影响用户体验。因此,在本申请实施例中,计算机设备可以使用缓冲区候选集来优化调整策略。
图6是根据一示例性实施例示出的蓝牙音频播放的缓冲区设置方法的方法流程图。其中,该缓冲区设置方法可以由计算机设备执行。例如,该计算机设备可以是上述图1所示系统中的蓝牙源设备140。该蓝牙音频播放的缓冲区设置方法可以包括如下步骤:
步骤601,调取缓冲区候选集中尚未被调取的缓冲区大小中,最小的一个缓冲区大小作为该第一缓冲区大小;该缓冲区候选集中包含至少一个按照从小到大的顺序排列的缓冲区大小。
可选的,请参考图7,其示出了本申请实施例涉及的一种缓冲区调整的系统组件架构图,如图7所示,本申请的系统组件可以划分为初始化组件71、稳定检测组件72和后台管理组件73,该系统组件架构的三部分介绍如下:
1)初始化组件71:设置在蓝牙源设备中,用于处理不同的蓝牙播放场景下的缓冲区的初始化管理;
2)稳定检测组件72:设置在蓝牙源设备中,针对初始化后的缓冲区,对播该缓冲区是否满足稳定条件进行检测;
3)后台管理组件73:负责客户端(即蓝牙源设备)的缓冲区相关的数据进行控制,比如,收集和统计客户端的设备信息、缓冲区的大小以及稳定状态;后台管理组件还可以根据统计的结果,对客户端中的缓冲区管理策略进行控制,比如,控制开启或者关闭缓冲区动态调整的功能等。
在本申请实施例中,计算机设备(比如蓝牙源设备)中的初始化组件71可以维护一张缓冲区候选集,如图8所示,其示出了本申请实施例涉及的缓冲区候选集的使用逻辑示意图。缓冲区候选集81中各延时值由小到大排序,可选的,各延时值之间需满足一定间隔,假设延时间隔最小为DelayDelta。如图8所示,通过缓冲区候选集81,按照延时管理策略,对缓冲区82进行初始化,然后通过稳定检测组件进行稳定检测,根据检测结果对缓冲区候选集进行调整。
在本申请实施例中,蓝牙源设备可以从缓冲区候选集中的第一个缓冲区大小(即最小的一个缓冲区大小)开始,依次调取并应用,并且检测蓝牙播放设备播放的蓝牙音频的延时是否满足稳定条件。
在一种可能的实现方式中,上述缓冲区候选集可以实现为列表,比如,实现为一个延迟表,该延迟表中包含从小到大排列的一个或者多个延迟值,每个延迟值就是一个缓冲区大小。
或者,上述缓冲区候选集也可以实现为其它形式,比如,上述缓冲区候选集可以实现为一个配置文件,该配置文件中包含从小到大排列的一个或者多个延迟值。
步骤602,将缓冲区的大小初始化为第一缓冲区大小;该缓冲区用于缓冲待提供给蓝牙播放设备的音频数据;该缓冲区的大小用于指示该缓冲区中的音频数据的最大播放时长。
步骤603,获取指定周期内,该缓冲区在各个时间点上的填充占比,该填充占比用于指示对应的时间点上缓冲的音频数据的播放时长与该最大播放时长的比例。
步骤604,基于该缓冲区在各个时间点上的填充占比,确定该缓冲区的第一稳定状态,该第一稳定状态用于指示该缓冲区的大小是该第一缓冲区大小时,该蓝牙播放设备播放的蓝牙音频的延时是否满足稳定条件。
上述步骤602至步骤604的执行过程可以参考上述图4对应的实施例中的描述,此处不再赘述。
步骤605,响应于该第一稳定状态指示该蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件,且该第一缓冲区大小不是该缓冲区候选集中最大的缓冲区大小,从该缓冲区候选集中调取该第一缓冲区大小的下一个缓冲区大小,作为新的第一缓冲区大小。
在本申请实施例中,如果在第一缓冲区大小的情况下,蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件,则说明缓冲区较小,需要增大缓冲区,此时,如果缓冲区候选集中还有更大的缓冲区大小,则蓝牙源设备可以从缓冲区候选集中,按照从小到大的顺序,提取当前第一缓冲区大小的下一个缓冲区大小,作为新的缓冲区大小。
其中,在获取新的第一缓冲区大小之后,蓝牙源设备将返回步骤602,将该缓冲区的大小重新初始化为该新的第一缓冲区大小,并重新执行步骤602至步骤604。
步骤606,响应于该第一稳定状态指示该蓝牙播放设备播放的蓝牙音频的延时满足稳定条件,确定第三缓冲区大小,该第三缓冲区大小是小于该第一缓冲区大小,且不属于该缓冲区候选集的缓冲区大小。
在本申请实施例中,如果在第一缓冲区大小的情况下,蓝牙播放设备播放的蓝牙音频的延时满足稳定条件,则说明缓冲区的大小足够,此时考虑是否可以将缓冲区缩小,以降低延时。因此,蓝牙源设备可以进一步获取一个不属于缓冲区候选集,且小于当前的第一缓冲区大小的第三缓冲区大小,然后检测在第三缓冲区大小的情况下,是否能使得蓝牙播放设备播放的蓝牙音频的延时满足稳定条件。
在一种可能的实现方式中,该确定第三缓冲区大小,可以包括一下步骤:
S606a,响应于该第一缓冲区大小是该缓冲区候选集中的最小缓冲区大小,确定该第三缓冲区大小是该第一缓冲区大小的一半;
在一种可能的实现方式中,如果当前的第一缓冲区大小已经是缓冲区候选集中最小的一个缓冲区大小,则蓝牙源设备可以将第一缓冲区减半,得到第三缓冲区。
当然,在这种情况下,蓝牙源设备也可以通过其它方式获取第三缓冲区,只要第三缓冲区满足小于第一缓冲区的条件即可,比如,蓝牙源设备可以将第一缓冲区减去四分之一,得到第三缓冲区等等。
S606b,响应于该第一缓冲区大小不是该缓冲区候选集中的最小缓冲区大小,确定该第三缓冲区大小是该第一缓冲区大小与该第一缓冲区大小的前一缓冲区大小的平均值。
在另一种可能的实现方式中,如果当前的第一缓冲区大小不是缓冲区候选集中最小的一个缓冲区大小,则蓝牙源设备可以将第一缓冲区以及前一缓冲区做平均,,得到第三缓冲区。
当然,在这种情况下,蓝牙源设备也可以通过其它方式获取第三缓冲区,只要第三缓冲区满足小于第一缓冲区,且大于第一缓冲区的前一缓冲区的条件即可,比如,蓝牙源设备可以将第一缓冲区和前一缓冲器设置不同的权重后,做加权平均,得到第三缓冲区等等。
步骤607,将该缓冲区的大小重新初始化为该第三缓冲区大小。
步骤608,获取该缓冲区的第二稳定状态,该第二稳定状态用于指示该缓冲区的大小是该第三缓冲区大小时,该蓝牙播放设备播放的蓝牙音频的延时是否满足稳定条件。
其中,上述步骤607和步骤608的执行步骤与上述步骤602至步骤604类似,可以参考上述图4对应的实施例中的描述,此处不再赘述。
步骤609,根据该缓冲区的第二稳定状态,对该缓冲区候选集中的缓冲区大小进行调整。
在本申请实施例中,缓冲区候选集中已有的各个缓冲区大小并不一定能够很好的兼顾延时和卡顿,即当前的缓冲区候选集中的缓冲区的大小可能还有进一步优化的余地,此时,为了后续能够达到更好的缓冲区设置效果,蓝牙源设备可以在引入新的第三缓冲区大小之后,对缓冲区候选集中的缓冲区大小进行调整。
在一种可能的实现方式中,该根据该缓冲区的第二稳定状态,对该缓冲区候选集中的缓冲区大小进行调整,可以包括以下步骤:
S609a,响应于该第二稳定状态指示该蓝牙播放设备播放的蓝牙音频的延时满足稳定条件,将该缓冲区候选集中的该第一缓冲区大小按照第一指定步长进行减小;
在本申请实施例中,如果引入新的第三缓冲区大小之后,蓝牙播放设备播放的蓝牙音频的延时依然能够满足稳定条件,则说明当前第一缓冲区大小依然偏大,此时,可以将第一缓冲区大小按照指定的步长进行缩小,以便下一次启动蓝牙播放时,能够直接以较小的缓冲区大小进行稳定性检测。
S609b,响应于该第二稳定状态指示该蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件,则将该缓冲区候选集中处于该第一缓冲区大小的前一个缓冲区大小按照第二指定步长进行增大。
在本申请实施例中,如果引入新的第三缓冲区大小之后,蓝牙播放设备播放的蓝牙音频的延时不能满足稳定条件,则说明当前第一缓冲区大小合适,但是前一缓冲区大小偏小,此时,可以将第一缓冲区大小的前一个缓冲区大小按照指定的步长进行增大。
步骤610,响应于该第一稳定状态指示该蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件,且该第一缓冲区大小是该缓冲区候选集中最大的缓冲区大小,将该缓冲区的大小由该第一缓冲区大小增加为第二缓冲区大小。
在本申请实施例中,在第一缓冲区大小的情况下,如果蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件,并且,第一缓冲区大小已经是该缓冲区候选集中最大的缓冲区大小,则说明缓冲区候选集中所有的缓冲区大小都偏小,此时,可以按照上述图5所示的方案进行缓冲区的逐步增加。
步骤611,将该缓冲区的大小重新初始化为该第二缓冲区大小。
步骤612,获取该缓冲区的第三稳定状态,该第三稳定状态用于指示该缓冲区的大小是该第二缓冲区大小时,该蓝牙播放设备播放的蓝牙音频的延时是否满足稳定条件。
其中,上述步骤611和步骤612的执行步骤与上述步骤602至步骤604类似,也可以参考上述图4对应的实施例中的描述,此处不再赘述。
步骤613,响应于该第三稳定状态指示该蓝牙播放设备播放的蓝牙音频的延时满足稳定条件,将该第二缓冲区大小添加至该缓冲区候选集中的末尾。
在本申请实施例中,当第一缓冲区大小已经是该缓冲区候选集中最大的缓冲区大小,且按照上述图5所示的方案进行缓冲区的逐步增加后,得到第二缓冲区大小能够使得蓝牙播放设备播放的蓝牙音频的延时满足稳定条件时,可以将该第二缓冲区大小直接添加到缓冲区候选集中,避免下一次使用同样的蓝牙播放设备时,还需要再次按照图5所示的方案进行缓冲区的逐步增加,提高了缓冲区的设置效率。
可选的,响应于该缓冲区候选集中存在至少两个缓冲区大小,获取该缓冲区候选集中的相邻两个缓冲区大小;响应于该相邻两个缓冲区大小之间的大小间隔小于第一间隔阈值,且不小于第二间隔阈值,将该相邻两个缓冲区大小合并为该相邻两个缓冲区大小的平均值;响应于该相邻两个缓冲区大小之间的大小间隔小于该第二间隔阈值,则删除该相邻两个缓冲区大小中的前一个缓冲区大小。
在本申请实施例中,由于步骤609和步骤613中都涉及到对缓冲区候选集中的缓冲区大小的调整,为了避免缓冲区候选集中的缓冲区大小的数量过多,同时避免缓冲区候选集中的相邻缓冲区大小差异较小而导致无意义的检测,蓝牙源设备可以对缓冲区候选集中,间隔较小的相邻缓冲区大小进行合并。
可选的,以缓冲区候选集中的缓冲区大小以延时值的形式表示为例,上述缓冲区候选集管理策略可以如下:
(1)初始缓冲区候选集为空,使用最小延时值delay=20ms进行初始化,通过稳定检测组件得到的最终稳定的延时值delayA,插入缓冲区候选集;
其中,稳定的延时值,指的是使得蓝牙播放设备播放的蓝牙音频的延时满足稳定条件的延时值。
(2)缓冲区候选集非空,按照从小到大的顺序,依次使用缓冲区候选集中延时值进行初始化:取第一项延时值进行稳定检测,若未稳定,取第二项延时值重复检测,直至稳定。
(3)若所有延时值均未稳定,则从缓冲区候选集中最大的延时值开始,以10ms延时递增进行稳定检测,得到最终稳定延时值delayB,按最小排序插入缓冲区候选集;
(4)若缓冲区候选集中某项延时值稳定,取该项与前一项的中间值进行稳定检测,若该延时值稳定,则修改缓冲区候选集中前一项的延时值,该值增加10ms。若该延时值不稳定,继续使用下一项延时值初始化,同时修改下一项延时减少10ms。
(5)在修改缓冲区候选集时,若两个延时值差值小于DelayDelta时,则取中间值进行延时合并,若两个延时值的时间隔小于10ms,则取最大值替代。
例如,假设缓冲区候选集中已经有两个初始值:delayA=60ms和delayB=120ms。最小延时间隔为40ms。下面以不同的蓝牙耳机为例,介绍更换新耳机的以下三种情况:
(1)连接稳定的最小延时为80ms的蓝牙耳机:
首先取delayA=60ms进行延时稳定判断,不稳定。按照策略,取120ms进行初始化,播放稳定。接下来取60ms和120ms的中间值90ms进行初始化,稳定并修改delayA=70ms。
下一次连接该耳机时,取delayA=70ms进行延时稳定判断,不稳定。按照策略,取120ms进行初始化,播放稳定。接下来取70ms和120ms的中间值进行初始化,稳定并修改delayA=80ms。这样经过两轮调整,缓冲区候选集中的最小延时值为适合该蓝牙耳机的延时值。
(2)连接延时为140ms蓝牙耳机:
首先取delayA=60ms进行延时稳定判断,检测不稳定。按照策略,取120ms进行初始化,仍然不稳定,接下来以10ms递增进行初始化,当延时等于140ms时,检测稳定,插入delayC=140ms,检测到delayB和delayC小于40ms延时间隔,合并延时delayB=130ms。下一次连接该耳机时,再经过一轮上述处理,可以调整延时值delayB=140ms,此时,缓冲区候选集中的最大延时值为适合该蓝牙耳机的延时值。
(3)连接延时为40ms蓝牙耳机:
首先取delayA=60ms进行延时稳定判断,检测稳定。按照策略,取0和60ms中间值30ms进行初始化,检测不稳定,则回退使用60ms进行初始化,并修改delayA=50ms。下一次连接该耳机时,再经过一轮上述处理,得到缓冲区候选集中的最小延时值为适合该蓝牙耳机的延时值。
接下来假设缓冲区候选集中已经有两个初始值:delayA=60ms和delayB=120ms。最小延时间隔为40ms,以适合的延时值分别为80ms和60ms的蓝牙耳机交叉使用的情况下,为例,介绍两个不同延时耳机交叉使用情况:
第一轮,连接适合的延时值分别为80ms的耳机,使用60ms初始化缓冲区,经过检测后,调整后delayA=70ms,delayB=120ms;
第二轮,连接适合的延时值分别为60ms的耳机,使用70ms初始化,调整后delayA=60ms,delayB=120ms;
上述交叉使用过程,延时检测次数均为两次,并且重复使用同耳机后,延时可以稳定在合适的延时值。
在一种可能的实现方式中,响应于该蓝牙播放设备播放的蓝牙音频的延时满足稳定条件,向该服务器上报稳定延时信息,该稳定延时信息包括该蓝牙源设备的设备信息、该蓝牙播放设备的设备信息、以及当前该缓冲区的大小;
响应于接收到该服务器返回的结束调整指令,暂停执行该获取指定周期内,该缓冲区的第一稳定状态的步骤;
其中,该结束调整指令是该服务器根据本次播放过程中上传的各个稳定延时信息,确定出该缓冲区的大小发生异常抖动时下发的指令。
在本申请实施例中,服务器侧可以设置后台管理系统,该后台管理系统可以负责统计客户端(即蓝牙源设备)上报反馈的延时数据,同时对客户端的蓝牙播放延时优化组件的开启进行控制。以蓝牙源设备是手机为例,客户端蓝牙播放延时优化组件反馈的数据可以包含以下表1所示的信息:
表1
手机型号 手机操作系统 蓝牙播放设备 蓝牙版本 延时
其中,后台管理系统收到客户端上报的数据后,进行抖动判断,控制其蓝牙播放延时优化组件开启,请参考图9,其示出了本申请实施例涉及的后台控制策略示意图。如图9所示:后台服务器92收到客户端91的延时上报数据92a,抖动判断组件92b根据数据库已有延时数据信息,对比分析延时数据,以进行抖动判断,并由数据统计组件92c对已有的延时数据信息进行统计更新。当检测到延时稳定后,连续发生异常抖动情况(比如,连续发生满足稳定条件的延时值,即缓冲区的大小发生变化),并且变化的频率超过预设频率阈值(比如,在10s内发生3次以上的变化)时,通过机型名单92d的过滤,确定需要关闭客户端91的延时自适应优化组件,此时,可以通过开关组件92e指示客户端91关闭延时自适应优化组件(即上述的初始化组件和稳定检测组件)。
本申请上述方案为蓝牙播放的延时自适应优化方案,可选的,上述客户端中的延时自适应优化组件也可以由用户或者后台管理员主动开启或者关闭。
比如,请参考图10,其示出了本申请实施例涉及的延时自适应优化的手动控制逻辑示意图。以客户端是游戏客户端为例,如图10所示,当蓝牙耳机连接游戏客户端(S1001)时,优化过程自动启动运行。整个调整过程不需要用户手动操作,对用户也是透明的。同时,提供了用户手动设置蓝牙播放延时的入口,由用户手动设置优化过程的开启或关闭(S1002)。同时,客户端将优化过程的运行状态上报给后台服务器(S1003),后台管理员可通过后台服务器对客户端自适应优化功能进行控制,控制优化过程的开启或关闭(S1004),也可以监控当前不同客户端的延时优化值。
综上所述,本申请实施例所示的方案,首先将缓冲区的大小初始化为一个第一缓冲区大小,并在指定周期内,获取指示蓝牙播放设备从缓冲区中获取音频数据并播放的蓝牙音频的延时是否满足稳定条件,以此来确定是否需要对缓冲区进行调整,并在确定需要调整时,对缓冲区进行调整,从而根据蓝牙音频的延时是否稳定,实现对缓冲区大小的动态调整,能够准确的设置蓝牙音频播放所使用的缓冲区的大小,从而实现满足蓝牙播放设备对缓冲区大小的要求的前提下,缩短蓝牙播放设备在播放音频的过程中播放延时,提高蓝牙音频的播放效果。
此外,本申请实施例所示的方案,还设置一个缓冲区候选集,并在自适应调整过程中,按照从小到大的顺序从缓冲区候选集中提取缓冲区大小进行初始化设置,并按照稳定检测结果对缓冲区候选集中的缓冲区大小进行调整,能够节约新的蓝牙播放设备接入后的调整效率。
另外,本申请实施例所示的方案,还可以将稳定状态下的缓冲区数据上报给服务器,由服务器在检测出缓冲区大小发生异常波动时,暂停自适应调整过程,避免对缓冲区反复调整。
请参考图11,其示出了本申请一个示例性实施例提供的蓝牙音频播放的缓冲区设置装置的方框图,该蓝牙音频播放的缓冲区设置装置可以通过硬件或者软硬结合的方式实现为计算机设备的全部或者部分,以实现如上述图4或图6所示实施例中的全部或者部分步骤。如图11所示,该蓝牙音频播放的缓冲区设置装置包括:
初始化模块1101,用于将缓冲区的大小初始化为第一缓冲区大小;所述缓冲区用于缓冲待提供给蓝牙播放设备的音频数据;所述缓冲区的大小用于指示所述缓冲区中的音频数据的最大播放时长;
状态获取模块1102,用于获取指定周期内,所述缓冲区的第一稳定状态,所述第一稳定状态用于指示所述蓝牙播放设备播放的蓝牙音频的延时是否满足稳定条件;
缓冲区调整模块1103,用于响应于所述第一稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件,将所述缓冲区的大小调整为第二缓冲区大小;所述第二缓冲区大小不同于所述第一缓冲区大小。
在一种可能的实现方式中,所述状态获取模块1102,用于,
获取所述指定周期内,所述缓冲区在各个时间点上的填充占比,所述填充占比用于指示对应的时间点上缓冲的音频数据的播放时长与所述最大播放时长的比例;
基于所述缓冲区在各个时间点上的填充占比,获取第一时间占比;所述第一时间占比是所述缓冲区的填充占比满足第一条件的时长,占所述指定周期的周期时长的比例;所述第一条件是所述缓冲区的填充占比大于第一填充占比阈值;
响应于所述第一时间占比不大于第一时间占比阈值,确定所述缓冲区的第一稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时满足稳定条件;
响应于所述第一时间占比大于所述第一时间占比阈值,确定所述缓冲区的第一稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件。
在一种可能的实现方式中,所述缓冲区调整模块1103,用于,
响应于所述第一稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件,将所述缓冲区的大小由所述第一缓冲区大小增加为第二缓冲区大小;
将所述缓冲区的大小重新初始化为所述第二缓冲区大小。
在一种可能的实现方式中,所述装置还包括:
调取模块,用于在初始化模块1101将缓冲区的大小初始化为第一缓冲区大小之前,调取缓冲区候选集中尚未被调取的缓冲区大小中,最小的一个缓冲区大小作为所述第一缓冲区大小;所述缓冲区候选集中包含至少一个按照从小到大的顺序排列的缓冲区大小;
所述缓冲区调整模块1103,用于,
响应于所述第一稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件,且所述第一缓冲区大小是所述缓冲区候选集中最大的缓冲区大小,执行将所述缓冲区的大小调整为第二缓冲区状态的步骤。
在一种可能的实现方式中,所述调取模块,还用于响应于所述第一稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件,且所述第一缓冲区大小不是所述缓冲区候选集中最大的缓冲区大小,从所述缓冲区候选集中调取所述第一缓冲区大小的下一个缓冲区大小,作为新的第一缓冲区大小;
所述初始化模块1101,还用于将所述缓冲区的大小重新初始化为所述新的第一缓冲区大小。
在一种可能的实现方式中,所述装置还包括:
缓冲区大小确定模块,用于响应于所述第一稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时满足稳定条件,确定第三缓冲区大小,所述第三缓冲区大小是小于所述第一缓冲区大小,且不属于所述缓冲区候选集的缓冲区大小;
所述初始化模块1101,还用于将所述缓冲区的大小重新初始化为所述第三缓冲区大小;
所述状态获取模块1102,还用于获取所述缓冲区的第二稳定状态,所述第二稳定状态用于指示所述缓冲区的大小是所述第三缓冲区大小是,所述蓝牙播放设备播放的蓝牙音频的延时是否满足稳定条件;
缓冲区候选集调整模块,用于根据所述缓冲区的第二稳定状态,对所述缓冲区候选集中的缓冲区大小进行调整。
在一种可能的实现方式中,所述缓冲区大小确定模块,用于,
响应于所述第一缓冲区大小是所述缓冲区候选集中的最小缓冲区大小,确定所述第三缓冲区大小是所述第一缓冲区大小的一半;
响应于所述第一缓冲区大小不是所述缓冲区候选集中的最小缓冲区大小,确定所述第三缓冲区大小是所述第一缓冲区大小与所述第一缓冲区大小的前一缓冲区大小的平均值。
在一种可能的实现方式中,所述缓冲区候选集调整模块,用于,
响应于所述第二稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时满足稳定条件,将所述缓冲区候选集中的所述第一缓冲区大小按照第一指定步长进行减小;
响应于所述第二稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件,则将所述缓冲区候选集中处于所述第一缓冲区大小的前一个缓冲区大小按照第二指定步长进行增大。
在一种可能的实现方式中,所述状态获取模块1102,还用于获取所述缓冲区的第三稳定状态,所述第三稳定状态用于指示所述缓冲区的大小是所述第二缓冲区大小时,所述蓝牙播放设备播放的蓝牙音频的延时是否满足稳定条件;
所述缓冲区候选集调整模块,还用于响应于所述第三稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时满足稳定条件,将所述第二缓冲区大小添加至所述缓冲区候选集中的末尾。
在一种可能的实现方式中,所述缓冲区候选集调整模块,还用于,
响应于所述缓冲区候选集中存在至少两个缓冲区大小,获取所述缓冲区候选集中的相邻两个缓冲区大小;
响应于所述相邻两个缓冲区大小之间的大小间隔小于第一间隔阈值,且不小于第二间隔阈值,将所述相邻两个缓冲区大小合并为所述相邻两个缓冲区大小的平均值;
响应于所述相邻两个缓冲区大小之间的大小间隔小于所述第二间隔阈值,则删除所述相邻两个缓冲区大小中的前一个缓冲区大小。
在一种可能的实现方式中,所述方法由蓝牙源设备执行,所述装置还包括:
信息上报模块,用于响应于所述蓝牙播放设备播放的蓝牙音频的延时满足稳定条件,向所述服务器上报稳定延时信息,所述稳定延时信息包括所述蓝牙源设备的设备信息、所述蓝牙播放设备的设备信息、以及当前所述缓冲区的大小;
暂停模块,用于响应于接收到所述服务器返回的结束调整指令,暂停执行所述获取指定周期内,所述缓冲区的第一稳定状态的步骤;
其中,所述结束调整指令是所述服务器根据本次播放过程中上传的各个稳定延时信息,确定出所述缓冲区的大小发生异常抖动时下发的指令。
综上所述,本申请实施例所示的方案,首先将缓冲区的大小初始化为一个第一缓冲区大小,并在指定周期内,获取指示蓝牙播放设备从缓冲区中获取音频数据并播放的蓝牙音频的延时是否满足稳定条件,以此来确定是否需要对缓冲区进行调整,并在确定需要调整时,对缓冲区进行调整,从而根据蓝牙音频的延时是否稳定,实现对缓冲区大小的动态调整,能够准确的设置蓝牙音频播放所使用的缓冲区的大小,从而实现满足蓝牙播放设备对缓冲区大小的要求的前提下,缩短蓝牙播放设备在播放音频的过程中播放延时,提高蓝牙音频的播放效果。
此外,本申请实施例所示的方案,还设置一个缓冲区候选集,并在自适应调整过程中,按照从小到大的顺序从缓冲区候选集中提取缓冲区大小进行初始化设置,并按照稳定检测结果对缓冲区候选集中的缓冲区大小进行调整,能够节约新的蓝牙播放设备接入后的调整效率。
另外,本申请实施例所示的方案,还可以将稳定状态下的缓冲区数据上报给服务器,由服务器在检测出缓冲区大小发生异常波动时,暂停自适应调整过程,避免对缓冲区反复调整。
图12是根据一示例性实施例示出的一种计算机设备的结构示意图。所述计算机设备1200包括中央处理单元1201、包括随机存取存储器1202和只读存储器1203的系统存储器1204,以及连接系统存储器1204和中央处理单元1201的系统总线1205。所述计算机设备1200还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统1206,和用于存储操作系统1213、应用程序1214和其他程序模块1215的大容量存储设备1207。
所述基本输入/输出系统1206包括有用于显示信息的显示器1208和用于用户输入信息的诸如鼠标、键盘之类的输入设备1209。其中所述显示器1208和输入设备1209都通过连接到系统总线1205的输入输出控制器1210连接到中央处理单元1201。所述基本输入/输出系统1206还可以包括输入输出控制器1210以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1210还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1207通过连接到系统总线1205的大容量存储控制器(未示出)连接到中央处理单元1201。所述大容量存储设备1207及其相关联的计算机可读介质为计算机设备1200提供非易失性存储。也就是说,所述大容量存储设备1207可以包括诸如硬盘之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。上述的系统存储器1204和大容量存储设备1207可以统称为存储器。
计算机设备1200可以通过连接在所述系统总线1205上的网络接口单元1211连接到互联网或者其它网络设备。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,中央处理器1201通过执行该一个或一个以上程序来实现图4或图6所示的方法中的全部或者部分步骤。
在一示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括至少一条指令、至少一段程序、代码集或指令集的存储器,上述至少一条指令、至少一段程序、代码集或指令集可由处理器执行以完成上述图4或图6对应实施例所示的方法的全部或者部分步骤。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (15)

1.一种蓝牙音频播放的缓冲区设置方法,其特征在于,所述方法包括:
将缓冲区的大小初始化为第一缓冲区大小;所述缓冲区用于缓冲待提供给蓝牙播放设备的音频数据;所述缓冲区的大小用于指示所述缓冲区中的音频数据的最大播放时长;
获取指定周期内,所述缓冲区的第一稳定状态,所述第一稳定状态用于指示所述蓝牙播放设备播放的蓝牙音频的延时是否满足稳定条件;所述第一稳定状态是通过所述指定周期内,所述缓冲区在各个时间点上的填充占比确定的;所述填充占比用于指示对应的时间点上缓冲的音频数据的播放时长与所述最大播放时长的比例;
响应于所述第一稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件,将所述缓冲区的大小调整为第二缓冲区大小;所述第二缓冲区大小不同于所述第一缓冲区大小。
2.根据权利要求1所述的方法,其特征在于,所述获取指定周期内,所述缓冲区的第一稳定状态,包括:
基于所述缓冲区在各个时间点上的填充占比,获取第一时间占比;所述第一时间占比是所述缓冲区的填充占比满足第一条件的时长,占所述指定周期的周期时长的比例;所述第一条件是所述缓冲区的填充占比大于第一填充占比阈值;
响应于所述第一时间占比不大于第一时间占比阈值,确定所述缓冲区的第一稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时满足稳定条件;
响应于所述第一时间占比大于所述第一时间占比阈值,确定所述缓冲区的第一稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件。
3.根据权利要求2所述的方法,其特征在于,所述响应于所述第一稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件,将所述缓冲区的大小调整为第二缓冲区状态,包括:
响应于所述第一稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件,将所述缓冲区的大小由所述第一缓冲区大小增加为第二缓冲区大小;
将所述缓冲区的大小重新初始化为所述第二缓冲区大小。
4.根据权利要求1所述的方法,其特征在于,所述将缓冲区的大小初始化为第一缓冲区大小之前,还包括:
调取缓冲区候选集中尚未被调取的缓冲区大小中,最小的一个缓冲区大小作为所述第一缓冲区大小;所述缓冲区候选集中包含至少一个按照从小到大的顺序排列的缓冲区大小;
所述响应于所述第一稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件,将所述缓冲区的大小调整为第二缓冲区状态,包括:
响应于所述第一稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件,且所述第一缓冲区大小是所述缓冲区候选集中最大的缓冲区大小,执行所述将所述缓冲区的大小调整为第二缓冲区状态的步骤。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
响应于所述第一稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件,且所述第一缓冲区大小不是所述缓冲区候选集中最大的缓冲区大小,从所述缓冲区候选集中调取所述第一缓冲区大小的下一个缓冲区大小,作为新的第一缓冲区大小;
将所述缓冲区的大小重新初始化为所述新的第一缓冲区大小。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
响应于所述第一稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时满足稳定条件,确定第三缓冲区大小,所述第三缓冲区大小是小于所述第一缓冲区大小,且不属于所述缓冲区候选集的缓冲区大小;
将所述缓冲区的大小重新初始化为所述第三缓冲区大小;
获取所述缓冲区的第二稳定状态,所述第二稳定状态用于指示所述缓冲区的大小是所述第三缓冲区大小时,所述蓝牙播放设备播放的蓝牙音频的延时是否满足稳定条件;
根据所述缓冲区的第二稳定状态,对所述缓冲区候选集中的缓冲区大小进行调整。
7.根据权利要求6所述的方法,其特征在于,所述确定第三缓冲区大小,包括:
响应于所述第一缓冲区大小是所述缓冲区候选集中的最小缓冲区大小,确定所述第三缓冲区大小是所述第一缓冲区大小的一半;
响应于所述第一缓冲区大小不是所述缓冲区候选集中的最小缓冲区大小,确定所述第三缓冲区大小是所述第一缓冲区大小与所述第一缓冲区大小的前一缓冲区大小的平均值。
8.根据权利要求6所述的方法,其特征在于,所述根据所述缓冲区的第二稳定状态,对所述缓冲区候选集中的缓冲区大小进行调整,包括:
响应于所述第二稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时满足稳定条件,将所述缓冲区候选集中的所述第一缓冲区大小按照第一指定步长进行减小;
响应于所述第二稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件,则将所述缓冲区候选集中处于所述第一缓冲区大小的前一个缓冲区大小按照第二指定步长进行增大。
9.根据权利要求4所述的方法,其特征在于,所述方法还包括:
获取所述缓冲区的第三稳定状态,所述第三稳定状态用于指示所述缓冲区的大小是所述第二缓冲区大小时,所述蓝牙播放设备播放的蓝牙音频的延时是否满足稳定条件;
响应于所述第三稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时满足稳定条件,将所述第二缓冲区大小添加至所述缓冲区候选集中的末尾。
10.根据权利要求8或9所述的方法,其特征在于,所述方法还包括:
响应于所述缓冲区候选集中存在至少两个缓冲区大小,获取所述缓冲区候选集中的相邻两个缓冲区大小;
响应于所述相邻两个缓冲区大小之间的大小间隔小于第一间隔阈值,且不小于第二间隔阈值,将所述相邻两个缓冲区大小合并为所述相邻两个缓冲区大小的平均值;
响应于所述相邻两个缓冲区大小之间的大小间隔小于所述第二间隔阈值,则删除所述相邻两个缓冲区大小中的前一个缓冲区大小。
11.根据权利要求1所述的方法,其特征在于,所述方法由蓝牙源设备执行,所述方法还包括:
响应于所述蓝牙播放设备播放的蓝牙音频的延时满足稳定条件,向服务器上报稳定延时信息,所述稳定延时信息包括所述蓝牙源设备的设备信息、所述蓝牙播放设备的设备信息、以及当前所述缓冲区的大小;
响应于接收到所述服务器返回的结束调整指令,暂停执行所述获取指定周期内,所述缓冲区的第一稳定状态的步骤;
其中,所述结束调整指令是所述服务器根据本次播放过程中上传的各个稳定延时信息,确定出所述缓冲区的大小发生异常抖动时下发的指令。
12.一种蓝牙音频播放方法,其特征在于,所述方法包括:
在第一时间段内,通过蓝牙播放设备以第一平均延时播放蓝牙音频;
响应于在所述第一时间段内播放的蓝牙音频存在卡顿,在第二时间段内,通过所述蓝牙播放设备以第二平均延时播放蓝牙音频;所述第二时间段位于所述第一时间段之后,且所述第二平均延时大于所述第一平均延时;
响应于在所述第一时间段内播放的蓝牙音频不存在卡顿,在第三时间段内,保持通过所述蓝牙播放设备以所述第二平均延时播放蓝牙音频;
其中,所述蓝牙播放设备播放蓝牙音频的平均延时是与蓝牙音频播放的缓冲区大小确定的;所述缓冲区大小是基于当指定周期内所述缓冲区的第一稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件时进行调整的;所述缓冲区大小用于指示所述缓冲区中的音频数据的最大播放时长;所述第一稳定状态是通过所述指定周期内,所述缓冲区在各个时间点上的填充占比确定的;所述填充占比用于指示对应的时间点上缓冲的音频数据的播放时长与所述最大播放时长的比例。
13.一种蓝牙音频播放的缓冲区设置装置,其特征在于,所述装置包括:
初始化模块,用于将缓冲区的大小初始化为第一缓冲区大小;所述缓冲区用于缓冲待提供给蓝牙播放设备的音频数据;所述缓冲区的大小用于指示所述缓冲区中的音频数据的最大播放时长;
状态获取模块,用于获取指定周期内,所述缓冲区的第一稳定状态,所述第一稳定状态用于指示所述蓝牙播放设备播放的蓝牙音频的延时是否满足稳定条件;所述第一稳定状态是通过所述指定周期内,所述缓冲区在各个时间点上的填充占比确定的;所述填充占比用于指示对应的时间点上缓冲的音频数据的播放时长与所述最大播放时长的比例;
缓冲区调整模块,用于响应于所述第一稳定状态指示所述蓝牙播放设备播放的蓝牙音频的延时不满足稳定条件,将所述缓冲区的大小调整为第二缓冲区大小;所述第二缓冲区大小不同于所述第一缓冲区大小。
14.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有指令,所述指令由所述处理器执行,以实现如权利要求1至11任一所述的蓝牙音频播放的缓冲区设置方法。
15.一种计算机可读存储介质,其特征在于,所述存储介质中存储有指令,所述指令由计算机设备的处理器执行以实现如权利要求1至11任一所述的蓝牙音频播放的缓冲区设置方法。
CN202010358112.XA 2020-04-29 2020-04-29 蓝牙音频播放的缓冲区设置方法、装置、设备及存储介质 Active CN111556361B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010358112.XA CN111556361B (zh) 2020-04-29 2020-04-29 蓝牙音频播放的缓冲区设置方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010358112.XA CN111556361B (zh) 2020-04-29 2020-04-29 蓝牙音频播放的缓冲区设置方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111556361A CN111556361A (zh) 2020-08-18
CN111556361B true CN111556361B (zh) 2021-08-03

Family

ID=72004299

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010358112.XA Active CN111556361B (zh) 2020-04-29 2020-04-29 蓝牙音频播放的缓冲区设置方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111556361B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114629987A (zh) * 2020-12-11 2022-06-14 华为技术有限公司 一种实现蓝牙耳机耳返的方法及相关装置
CN112737975B (zh) * 2020-12-25 2023-05-09 珠海西山居数字科技有限公司 缓冲区容量调整方法及装置
CN113722245B (zh) * 2021-08-04 2023-12-12 广州市百果园信息技术有限公司 一种缓冲区自适应调整方法、装置、设备及存储介质
CN114640740B (zh) * 2022-03-22 2024-03-12 Oppo广东移动通信有限公司 通信处理方法、装置、电子设备以及存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6683889B1 (en) * 1999-11-15 2004-01-27 Siemens Information & Communication Networks, Inc. Apparatus and method for adaptive jitter buffers
JP3344401B2 (ja) * 2000-03-03 2002-11-11 日本電気株式会社 ゆらぎバッファ制御装置
US7143263B2 (en) * 2003-10-16 2006-11-28 International Business Machines Corporation System and method of adaptively reconfiguring buffers
US7359324B1 (en) * 2004-03-09 2008-04-15 Nortel Networks Limited Adaptive jitter buffer control
US20070140123A1 (en) * 2004-03-11 2007-06-21 Matsushita Electric Industrial Co., Ltd Control station apparatus, base station apparatus, terminal apparatus, packet communication system, and packet communication method
CN101123571A (zh) * 2006-08-07 2008-02-13 北京三星通信技术研究有限公司 基于自适应抖动缓冲的调度策略的调整方法
US8223641B2 (en) * 2008-07-28 2012-07-17 Cellco Partnership Dynamic setting of optimal buffer sizes in IP networks
CN101583025B (zh) * 2009-06-11 2011-05-11 中兴通讯股份有限公司 一种流媒体播放方法及装置
CN103124412A (zh) * 2012-11-16 2013-05-29 佳都新太科技股份有限公司 一种基于rtp协议的网络抖动处理技术
JP6163741B2 (ja) * 2012-11-30 2017-07-19 ヤマハ株式会社 ネットワーク受信用バッファのバッファサイズ決定方法及び装置並びにネットワークセッションシステム
US20150098020A1 (en) * 2013-10-07 2015-04-09 Nvidia Corporation Method and system for buffer level based frame rate recovery
CN104407986B (zh) * 2014-10-27 2018-03-13 华为技术有限公司 在存储设备中配置缓存的方法、装置及控制器
CN107529097A (zh) * 2016-06-20 2017-12-29 北京信威通信技术股份有限公司 一种自适应调整视频缓冲大小的方法及装置
CN109600676A (zh) * 2018-12-17 2019-04-09 北京金山云网络技术有限公司 一种数据缓冲方法及装置

Also Published As

Publication number Publication date
CN111556361A (zh) 2020-08-18

Similar Documents

Publication Publication Date Title
CN111556361B (zh) 蓝牙音频播放的缓冲区设置方法、装置、设备及存储介质
CN111135569A (zh) 云游戏处理方法、装置、存储介质与电子设备
US20140358264A1 (en) Audio playback method, apparatus and system
US20130035107A1 (en) System and method for adaptive traffic prioritization and bandwidth allocation on mobile data networks
JP6540189B2 (ja) 送信装置、送信方法、およびプログラム
US20210076086A1 (en) Digital data streaming using server driven adaptive bitrate
CN113411643B (zh) 一种视频质量优化方法、系统、电子设备及存储介质
WO2016108979A1 (en) Methods and apparatus for adaptive bandwidth-based communication management
KR20180086114A (ko) 재생 지연 방지 시스템을 포함하는 미디어 재생 장치 및 방법
CN109672961B (zh) 一种音量调节方法、设备及存储介质
CN113766146B (zh) 音视频处理方法、装置、电子设备及存储介质
US11323549B2 (en) Delivery of media content to a media device via multiple data packet streams
US20230011483A1 (en) Method and device for adjusting bit rate during live streaming
US9560105B2 (en) Server device and information processing method
KR100434178B1 (ko) 단말 수단의 영상 신호 처리 능력에 연동되는 영상데이터의 정밀도 조정 방법 및 조정 시스템
CN112533074B (zh) 数据传输方法及装置
CN115633010A (zh) 消息控制方法和消息控制装置
US9806967B2 (en) Communication device and data processing method
US8791981B2 (en) Bit rate control apparatus and method thereof
CN112019918B (zh) 一种视频播放方法及设备
CN114124962A (zh) 多机房消息负载均衡处理方法及装置
CN112738571B (zh) 一种流媒体参数的确定方法及装置
WO2022271189A1 (en) Remote access session management
US20220239268A1 (en) Adaptive volume control based on user environment
CN112738568B (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40027393

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant