本申请实施例涉及但不限于数据处理技术领域,尤其涉及实时流数据处理方法、装置、设备和存储介质。
背景技术:
电子设备的市场竞争很激烈。因此,厂家出于成本控制目的,有时候会减小电子设备中芯片的性能规格,即进行芯片简化。
简化的芯片其内部资源会有一定削减,常用的做法是减小芯片的ram。此时,会因为数据量不足导致数据处理能力的下降,引起数据处理的异常。例如在音乐播放领域,当数据处理的芯片性能不足时,会导致音乐播放卡顿或者数据丢失等问题。
技术实现要素:
为了缓解上述问题,本申请实施例提供了实时流数据处理方法,通过设置不同的缓冲区来分别存储原始数据和待播放数据,并根据数据存储状态调节对应缓冲区的存储空间大小,能够充分利用内存的空间,避免因为硬件条件限制导致的数据处理能力下降。此外,本申请实施例还提供了实时流数据处理装置、设备和存储介质。
第一方面,本申请实施例提供了实时流数据处理方法,包括:在单个内存区域上设置第一缓冲区和第二缓冲区;将原始数据存入所述第一缓冲区;解码所述原始数据得到待播放数据;将所述待播放数据存入所述第二缓冲区以供输出;根据所述第一缓冲区和/或者所述第二缓冲区的数据存储状态调节对应缓冲区的存储空间大小。
本申请实施例的有益效果至少包括:通过在单个内存区域上设置第一缓冲区和第二缓冲区以分开存储原始数据和待播放数据,能满足基本的数据存储需求;根据数据存储状态调节对应缓冲区的存储空间大小,能够灵活调整原始数据和待播放数据的存储空间,实现存储空间的充分利用,可以降低由于硬件条件限制,存储数据量不足导致的数据处理异常发生率。
优选地,实时流数据处理方法包括:基于时间中断解码所述原始数据得到待播放数据;根据所述第二缓冲区的存储参数调节所述时间中断。
本申请实施例的有益效果至少包括:通过时间中断的方式安排解码,可以使解码不受到其他数据处理线程的干扰,有助于确保待播放数据解码效率;通过第二缓冲区的存储参数调节所述时间中断,能够改变解码效率以匹配第二缓冲区的存储空间,可以缓解数据存储和读取的拥堵。
优选地,所述解码所述原始数据得到待播放数据之前,还包括:确定所述第一缓冲区存储的数据量大于基础阈值。
本申请实施例的有益效果至少包括:通过确定所述第一缓冲区存储的数据量大于基础阈值,可以确保原始数据的数据量,使解码得到的待播放数据的数据量能满足后续数据处理的需要。
优选地,所述根据所述第一缓冲区或者所述第二缓冲区的数据存储状态调节对应的存储空间大小,包括:如果所述第一缓冲区或者所述第二缓冲区存储的数据量大于增大阈值且小于溢出阈值,增大所述第一缓冲区或所述第二缓冲区的缓存,其中,增大后的缓存不超过所述溢出阈值;和/或者,如果所述第一缓冲区或者所述第二缓冲区存储的数据量大于所述溢出阈值,则丢弃数据;和/或者,如果所述第一缓冲区或者所述第二缓冲区已存储的数据量小于缩小阈值且大于保底阈值,减小所述第一缓冲区或所述第二缓冲区的缓存,其中,减小后的缓存不低于所述保底阈值。
本申请实施例的有益效果至少包括:通过动态调节第一缓冲区或者第二缓冲区的缓存,能够有效利用内存的空间,降低数据处理受到数据量异常的影响;通过丢弃数据,能够防止数据堆积导致的数据处理异常发生率。
优选地,所述将原始数据存入所述第一缓冲区之前,还包括:根据预设的输出参数将所述原始数据传输至所述第一缓冲区以供存储;所述实时流数据处理方法还包括:根据所述输出参数设置用于调节存储空间大小的调节参数。
本申请实施例的有益效果至少包括:根据输出参数设置用于调节存储空间大小的调节参数,能够提高实时流数据处理方法适应不同硬件环境的能力。
优选地,所述根据所述第一缓冲区和/或者所述第二缓冲区的数据存储状态调节对应缓冲区的存储空间大小,包括:根据所述第一缓冲区和所述第二缓冲区的已存储数据的比值调节对应的存储空间大小。
本申请实施例的有益效果至少包括:通过第一缓冲区和所述第二缓冲区的已存储数据的比值,可以进一步明确两者之间的存储关系以调节对应的存储空间,可以提高存储空间的利用率。
优选地,所述基于时间中断解码所述原始数据得到待播放数据之前,还包括:确认所述第二缓冲区的未存储缓存大于安全阈值。
本申请实施例的有益效果至少包括:通过确认所述第二缓冲区的未存储缓存大于安全阈值,可以确保第二缓冲区存在必要的存储空间,防止数据溢出导致的数据损坏。
第二方面,本申请实施例提供了实时流数据处理装置,适用于上述实时流数据处理方法,包括:内存控制模块,用于在单个内存区域上设置第一缓冲区和第二缓冲区;第一缓冲模块,用于将原始数据存入所述第一缓冲区;解码单元,用于解码所述原始数据得到待播放数据;第二缓冲模块,用于使将所述待播放数据存入所述第二缓冲区以供输出;缓冲调节模块,用于根据所述第一缓冲区和/或者所述第二缓冲区的数据存储状态调节对应缓冲区的存储空间大小。
本申请实施例的有益效果至少包括:通过在单个内存区域上设置第一缓冲区和第二缓冲区以分开存储原始数据和待播放数据,能满足基本的数据存储需求;根据数据存储状态调节对应缓冲区的存储空间大小,能够灵活调整原始数据和待播放数据的存储空间,实现存储空间的充分利用,可以降低由于硬件条件限制,存储数据量不足导致的数据处理异常发生率。
第三方面,本申请实施例提供了实时流数据处理设备,包括:至少一个处理器,以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的实时流数据处理方法。
本申请实施例的有益效果至少包括:通过在单个内存区域上设置第一缓冲区和第二缓冲区以分开存储原始数据和待播放数据,能满足基本的数据存储需求;根据数据存储状态调节对应缓冲区的存储空间大小,能够灵活调整原始数据和待播放数据的存储空间,实现存储空间的充分利用,可以降低由于硬件条件限制,存储数据量不足导致的数据处理异常发生率。
第四方面,本申请实施例提供了计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如上述实时流数据处理方法。
本申请实施例的有益效果至少包括:通过在单个内存区域上设置第一缓冲区和第二缓冲区以分开存储原始数据和待播放数据,能满足基本的数据存储需求;根据数据存储状态调节对应缓冲区的存储空间大小,能够灵活调整原始数据和待播放数据的存储空间,实现存储空间的充分利用,可以降低由于硬件条件限制,存储数据量不足导致的数据处理异常发生率。
附图说明
附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1是本申请实施例中实时流数据处理方法的一具体实施例的流程图;
图2是本申请实施例中数据处理装置的一具体实施例连接示意图;
图3是本申请实施例中解码流程的一具体实施例流程图;
图4是本申请实施例中硬件dac读取数据的流程的一具体实施例流程图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
参考图1,本申请实施例提供了实时流数据处理方法,包括:
s01、在单个内存区域上设置第一缓冲区和第二缓冲区;
s02、将原始数据存入第一缓冲区;
s03、解码原始数据得到待播放数据;
s04、将待播放数据存入第二缓冲区以供输出;
s05、根据第一缓冲区和/或者第二缓冲区的数据存储状态调节对应缓冲区的存储空间大小。
内存区域为内存ram提供的用于存储数据的存储空间。实时流(realtimestreaming)为分段式发送一系列的数据包,以完成实时数据播放的技术,对应的数据包的集合为实时流数据。原始数据是出于便于传输或者保密目的进行过压缩或者编码的数据。
在现实中,简化的芯片一般会设置有一个内存,内存获取外部的数据以供后续的数据处理。以手机为例,内存会从存储器中读取一部分数据,然后根据具体需求将数据进行处理或者将数据输出。将存储器中的原始数据存入内存的第一缓冲区,解码原始数据得到适用于数模转换器的待播放数据,将待播放数据存入内存的第二缓冲区。手机的播放组件,例如喇叭、显示器等,从第二缓冲区读取待播放数据,通过对应的驱动就能直接输出待播放数据。
在简化的芯片中,内存空间有限,要实现实时流技术则需要充分利用内存的空间。同时,内存中的数据一般都处于动态变化状态。如果内存中原始数据和待播放数据的数据量失衡,会导致出现数据处理异常,例如,原始数据不足,会导致时间中断,待播放数据的数据量就会减少;待播放数据的数据量不足,则导致后续的数据处理或者数据输出中断,出现数据处理异常;原始数据过多会导致解码得到的待播放数据的数据量大于存储限制,导致数据丢失。
本实施例通过第一缓冲区和/或者第二缓冲区的数据存储状态调节对应缓冲区的存储空间大小,其中,数据存储状态包括已存储的数据在缓冲区中的占比,或者第一缓冲区与第二缓冲区的已存储数据的大小比例。例如,第一缓冲区大小为2m,其中已存储的数据占缓冲区的比例小于50%,则减小第一缓冲区的缓存为1m。同理也可以调节第二缓冲区的大小。或者,第一缓冲区的已存储数据大小为1.6m,第二缓冲区的已存储数据大小为1m,则可以调节第一缓冲区的大小为1.7m,调节第二缓冲区的大小为1.1m。根据数据存储状态调节对应缓冲区的存储空间大小,能够灵活调整原始数据和待播放数据的存储空间,实现存储空间的充分利用,可以降低由于硬件条件限制,存储数据量不足导致的数据处理异常发生率。
在本申请的一些具体实施例中,实时流数据处理方法包括:基于时间中断解码原始数据得到待播放数据;根据第二缓冲区的存储参数调节时间中断。
时间中断的定义是:在单片机程序设计中,设置一个时钟中断,当满足对应的时钟参数,则单片机启动一项功能。在本实施例中,时间中断用于在设定的时间触发解码,时间中断的执行优先级高于一般的程序/线程。
存储参数包括读取参数和存储使用参数,其中,读取参数用于描述读取第二缓冲区数据过程的各种限制条件,例如采样率、读取量等;存储使用参数用于描述针对存储空间的设定,例如存储空间大小、各种阈值等。
通过时间中断的方式安排解码,可以使解码不受到其他数据处理线程的干扰,有助于确保待播放数据解码效率;通过第二缓冲区的存储参数调节时间中断,能够改变解码效率以匹配第二缓冲区的存储空间,可以缓解数据存储和读取的拥堵。
在本申请的一些具体实施例中,解码原始数据得到待播放数据之前,还包括:确定第一缓冲区存储的数据量大于基础阈值。
在实践中,如果在原始数据的数据量不足时,启动解码,很可能会因解码缓慢,导致待播放数据不足,数据播放会出现卡顿,严重影响体验。本实施例通过确定第一缓冲区存储的数据量大于基础阈值,可以确保原始数据的数据量,使解码得到的待播放数据的数据量能满足后续数据处理的需要。设置基础阈值的目的在于保证原始数据的数据量能够满足基本解码需求,使得解码后的待播放数据的量不会过少。具体的基础阈值可以设置包括缓冲区的占比,例如10%。
在本申请的一些具体实施例中,根据所述第一缓冲区和/或者所述第二缓冲区的数据存储状态调节对应缓冲区的存储空间大小,包括:如果第一缓冲区或者第二缓冲区存储的数据量大于增大阈值且小于溢出阈值,增大第一缓冲区或第二缓冲区的缓存,其中,增大后的缓存不超过溢出阈值;和/或者,如果第一缓冲区或者第二缓冲区存储的数据量大于溢出阈值,则丢弃数据;和/或者,如果第一缓冲区或者第二缓冲区已存储的数据量小于缩小阈值且大于保底阈值,减小第一缓冲区或第二缓冲区的缓存,其中,减小后的缓存不低于保底阈值。
第一缓冲区或者第二缓冲区已存储的数据量超过增大阈值,则说明需要增大缓存,通过增大阈值的设置,能够降低由于存储空间不足导致的数据接收异常。但是增大后的缓存不能超过溢出阈值,如果超过溢出阈值则会挤压另一个缓冲区的存储空间,使另一个缓冲区出现数据接收异常。增大阈值可以设置包括1m,溢出阈值可以设置包括1.5m。
第一缓冲区或者第二缓冲区已存储的数据量超过溢出阈值时,则丢弃溢出的数据或者根据预设的规则丢弃已经存储的数据,避免干扰另一个缓冲区,能够防止数据堆积导致的数据处理异常发生率。
第一缓冲区或者第二缓冲区已存储的数据量小于缩小阈值,则说明需要存储的数据比较少,此时,可以腾出一些内存以供他用。但是减小后的缓存不低于保底阈值,保底阈值的意义在于确保缓冲区设置有最低限度的存储空间,否则就无法满足基础的数据存储的需求。
本实施例通过动态调节第一缓冲区或者第二缓冲区的缓存,能够有效利用内存的空间,降低数据处理受到数据量异常的影响。
在本申请的一些具体实施例中,将原始数据存入第一缓冲区之前,还包括:根据预设的输出参数将原始数据传输至第一缓冲区以供存储;实时流数据处理方法还包括:根据输出参数设置用于调节存储空间大小的调节参数。
原始数据在初始情况下,会存储在存储器中,将原始数据从存储器中读出并存入第一缓冲区。输出参数用于描述将原始数据存入内存过程的数据传输参数,包括数据传输速率和传输数据总量等。不同的芯片由于设计或者运行的程序的原因,数据传输参数会有一定的区别。根据输出参数设置用于调节存储空间大小的调节参数,能够提高实时流数据处理方法适应不同硬件环境的能力。
在本申请的一些具体实施例中,根据第一缓冲区和第二缓冲区的数据存储状态调节对应的存储空间大小,包括:根据第一缓冲区和第二缓冲区的已存储数据的比值调节对应的存储空间大小。
由于数据写入和读出路径的不同,第一缓冲区和第二缓冲区的数据存储状态并不会完全联动。因此,通过第一缓冲区和第二缓冲区之间已存储数据的比值调节对应的存储空间大小,能够准确的判断两者之间的存储关系,可以进一步明确两者之间的存储关系以调节对应的存储空间,可以提高存储空间的利用率。
在本申请的一些具体实施例中,基于时间中断解码原始数据得到待播放数据之前,还包括:确认第二缓冲区的未存储缓存大于安全阈值。
通过确认第二缓冲区的未存储缓存大于安全阈值,可以确保第二缓冲区存在必要的存储空间,防止数据溢出导致的数据损坏。安全阈值可以设置为第二缓冲区总存储空间大小的25%。
本申请实施例提供了实时流数据处理方法。
本实施例以手机控制蓝牙音箱播放指定的音乐作为说明。其中,手机为音频来源,蓝牙音箱为终端,蓝牙音箱简称为设备,设备包括蓝牙芯片,蓝牙芯片中设置有内存。
手机输出音频数据,音频数据以sbc(子带编码,sub-bandcoding)格式为例进行说明,后续将音频数据简称为sbc数据。蓝牙音箱需要解码sbc数据得到pcm(脉冲编码调制,pulsecodemodulation)数据之后,才能直接在数模转换器dac上应用。
当手机需要播放音乐时,会向设备发送sbc数据,设备将sbc数据写sbc缓冲区内。由时间中断启动解码器,对sbc数据进行解码。设备将解码后的pcm数据保存在pcm缓冲区,然后由硬件dac来读取pcm数据。整个过程可以分为三部分:接收sbc、sbc解码和硬件dac读取数据,这三部分相互独立,通过缓冲区进行串联。
一、接收sbc
在蓝牙音频数据传输的阶段,由于手机自身的原因,手机传给设备的sbc数据并不一定是匀速传输,会有时快一点有时慢一点,即存在不同的输出参数。此时,如果设备直接将接收到的sbc数据用于播放,将会导致pcm的缓冲区所存储的数据出现溢出或者不够的情况,从而导致音乐播放异常。本实施例通过设置第一缓冲区来实现增加sbc缓冲,用于平衡通讯过程中的数据波动造成的影响,sbc缓冲区即第一缓冲区。
对于sbc缓冲区的大小,可以根据不同规格的蓝牙芯片进行调整。sbc缓冲区的使用峰值(即最高的占比值)设定为缓冲区的最大值的80%,sbc缓冲区保留一些空余的内存空间作为备用。sbc缓冲区的使用峰值不超过最大值的80%,例如设置sbc缓冲区的占比为最大值的40%,如果设备的操作系统检测到sbc缓冲区大小不足,则自动以20%的速度向上增加缓冲区的大小,直到最大阈值(最大值的80%),当要存储的数据超过80%则会出现丢弃数据的情况。另外,当初次播放时,要先等sbc缓冲区存储一定量数据才能开始启动解码,如果立刻启动解码,将很可能因缺少sbc数据引起解码异常,导致音乐播放出现卡顿,严重影响体验。另外,通过sbc缓冲区存储一定量数据后再进行解码,会造成一些延时,例如以sbc数据压缩率为5倍计算,缓冲2k后播放,采样率为44.1k、双声道、16bits的播放参数,对应的延时的时间为2k*5/(44.1*2*2)=50ms,通过使用此配置的蓝牙音箱,看电影时实际体验声音与口型可以对得上,因此对于这样的延时是可以接受的。
sbc缓冲区的大小,可以设置初始值是4k,可以缓冲100ms的数据,当操作系统检测到存储空间不够时,以20%的速度增大缓冲区;缓冲区大小的最大值为8k,可以缓冲最大200ms的音频数据。
sbc缓冲区简称为缓存区,参考如图2的示意图,并提供具体的实施例作为举例性说明,sbc接收数据的流程包括:
s11、创建缓冲区,配置缓冲区大小为2k;
s12、等待手机输出数据,有数据输入缓存区则执行s13;
s13、判断缓冲区是否有足够空间写入当前数据,有则跳转s16,否则跳转s14;
s14、判断当前缓冲区已存储的数据是否达到缓冲区设定的最大值8k,是则丢弃数据,跳转到s12,否则跳转到s15;s14、还可以包括额外的步骤:输出用于说明存储空间不足的严重警告,再根据芯片的规格,看是否需要合理配置最大值的阈值;
s15、将缓冲区的大小扩充20%,当每次sbc接收数据大小都在400字节以下,扩大20%的存储空间足够存放一帧sbc数据;其中,sbc接收数据大小属于输出参数,20%为调节参数,即根据sbc数据大小可以设置调节参数。
s16、将手机输出的sbc数据写入缓冲区;
s17、判断时间中断是否开启,是跳转到s12,不是则跳转到s18;
s18、判断缓冲区的有效数据是否大于启动解码阈值2k,是则启动时间中断,再跳转s12,否则直接跳转到s12;其中,启动解码阈值即为基础阈值。
二、sbc解码
设备的操作系统可能会被其它应用阻塞,此时可以设置音频播放为最高优先级。通过时间中断执行sbc解码,中断的时间设置和pcm缓冲区大小有关,假定pcm缓冲区为8k,对于采样率为44.1k、双声道、16bits的播放参数,pcm缓冲区的数据输出时间为8k/(44.1k*2*2)=40ms。出于安全的考虑设置存储使用参数:例如让pcm缓冲区处于80%的利用率,将时间中断设定为40ms*0.8=32ms,也就是每隔32ms会启动一次解码,以防止出现硬件无数据播放的情况。其中,pcm缓冲区即第二缓冲区,上述播放参数和存储使用参数的集合即存储参数,存储参数可以根据芯片规格做一些合理的调整。
sbc解码过程可以控制每次解码固定数量的数据,例如固定数量设置包括512字节,此时pcm缓冲的大小必须是设定为512的倍数。
在不断地解码过程中,是对sbc缓冲区的数据的消耗,所以这个过程,sbc缓冲区的有效数据(即被指定读取的数据)会减小,如果发现缓冲区的有效数据占比过小时,将动态地以20%速度进行减小缓冲区,以便释放内存资源给其它应用使用,即根据数据存储状态调节对应的存储空间大小。
参考如图3的示意图,并提供具体的实施例作为举例性说明,解码流程,包括:
s21、判断pcm缓冲区没有空间,没有则结束此次解码流程,否则跳转s22;
s22、取出有效sbc数据并进入单次解码得到512bit的解码数据,将解码数据写入pcm缓冲区;
s23、判断有效sbc数据大小是否占sbc缓冲区大小的一半以下并且缓冲区大于最小阈值,是则跳转到s24,否则直接跳转到s21。
s24、缓冲区大小调整到当前存储空间大小的80%,再跳转到s21。
其中,步骤s21中,通过设置一个安全阈值,当pcm缓冲区中的未存储缓存小于该安全阈值,则说明没有足够空间用于存储后续的数据。安全阈值可以设置包括5%的存储空间占比。
步骤s23中,最小阈值即为保底阈值,用于确保存在最低限度的存储空间;缓冲区大小的一半,即50%的存储空间占比,为增大阈值。
三、硬件dac读取数据
dac数据的读取由设备的硬件自动触发,当硬件完成播放后,自动通过时间中断触发获取新的数据,dac数据的读取不能被阻塞,否则会对整个操作系统产生阻塞,所以获取新的数据的优先级为系统最高优先级。硬件读取数据也是每次固定长度512bit,当中断触发时,硬件不断地向pcm缓冲区读取数据。
参考如图4的示意图,并提供具体的实施例作为举例性说明,硬件dac读取数据的流程,包括:
s31、判断pcm缓冲区是否为空,是则从pcm缓冲区读出数据并向dac缓冲区写入,然后退出,否则跳转到s32;
s32、判断sbc数据缓冲区数据大于1k,是表明手机传输的数据是足够的,应该是未及时解码,跳转到s33,否则跳转到s34;
s33、增加解码次数,也就是减小时间中断的时间;
s34、可能是手机传输的数据量不够,需要检查硬件通讯链路信号是否正常,或者适当增加启动时间中断时的sbc有效数据大小的阈值,以增加延时来加大缓冲效果,跳转到s35;
s35、输出dac卡顿的原因,调整相关参数,找到合适芯片的参数达到播放流畅效果,返回s31。
本申请实施例提供了实时流数据处理装置,适用于上述实时流数据处理方法,包括:内存控制模块,用于在单个内存区域上设置第一缓冲区和第二缓冲区;第一缓冲模块,用于将原始数据存入第一缓冲区;解码单元,用于解码原始数据得到待播放数据;第二缓冲模块,用于使将待播放数据存入第二缓冲区以供输出;缓冲调节模块,用于根据第一缓冲区和/或者第二缓冲区的数据存储状态调节对应缓冲区的存储空间大小。
本申请实施例的有益效果至少包括:通过在单个内存区域上设置第一缓冲区和第二缓冲区以分开存储原始数据和待播放数据,能满足基本的数据存储需求;根据数据存储状态调节对应缓冲区的存储空间大小,能够灵活调整原始数据和待播放数据的存储空间,实现存储空间的充分利用,可以降低由于硬件条件限制,存储数据量不足导致的数据处理异常发生率。
本申请实施例提供了实时流数据处理设备,包括:至少一个处理器,以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的实时流数据处理方法。
本申请实施例的有益效果至少包括:通过在单个内存区域上设置第一缓冲区和第二缓冲区以分开存储原始数据和待播放数据,能满足基本的数据存储需求;根据数据存储状态调节对应缓冲区的存储空间大小,能够灵活调整原始数据和待播放数据的存储空间,实现存储空间的充分利用,可以降低由于硬件条件限制,存储数据量不足导致的数据处理异常发生率。
本申请实施例提供了计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于使计算机执行如上述实时流数据处理方法。
本申请实施例的有益效果至少包括:通过在单个内存区域上设置第一缓冲区和第二缓冲区以分开存储原始数据和待播放数据,能满足基本的数据存储需求;根据数据存储状态调节对应缓冲区的存储空间大小,能够灵活调整原始数据和待播放数据的存储空间,实现存储空间的充分利用,可以降低由于硬件条件限制,存储数据量不足导致的数据处理异常发生率。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上是对本申请的较佳实施进行了具体说明,但本申请并不局限于上述实施方式,熟悉本领域的技术人员在不违背本申请精神的前提下还可作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。