一种音频播放方法及装置的制造方法

文档序号:9924145阅读:368来源:国知局
一种音频播放方法及装置的制造方法
【技术领域】
[0001 ]本发明涉及网络技术领域,尤其涉及一种音频播放方法及装置。
【背景技术】
[0002]在广域网下,理想情况下的音频互动通信为,发送端发送数据包的间隔等于接收端接收数据包的间隔,接收端在接收到数据包后直接解码播放即可。但现实情况中,由于数据包采用UDP(User Datagram Protocol,用户数据报协议)传输,而在广域网下,UDP传输会存在乱序、丢包的情况,而且每一个数据包到达接收端的时间也可能会有不同的延迟,从而导致接收端接收到数据包的间隔是不固定的。如果网络变好,则接收端接收数据包的间隔变小,此时接收端能对数据包进行正常解码播放;如果网络变差,接收端接收数据包的间隔变大,数据的解码播放必然会出现等待,使得播放不连贯,从而导致接收端接收数据时快时慢,数据失真严重的问题产生。

【发明内容】

[0003]本发明实施例提出一种音频播放方法及装置,能够提高音频播放的流畅性。
[0004]本发明实施例提供一种音频播放方法,包括:
[0005]接收音频数据包,并将所述音频数据包缓存到第一缓冲区中;
[0006]检测所述第一缓冲区中缓存的音频数据包的个数,并根据所述音频数据包的个数实时调整解码速度;
[0007]按照所述解码速度从所述第一缓冲区中读取音频数据包进行解码播放。
[0008]进一步地,所述检测所述第一缓冲区中缓存的音频数据包的个数,并根据所述音频数据包的个数实时调整解码速度,具体包括:
[0009]检测所述第一缓冲区中缓存的音频数据包的个数;
[0010]若所述音频数据包的个数大于预设的第一阈值且小于预设的第二阈值,则将所述解码速度调整为第一速度;
[0011]若所述音频数据包的个数小于预设的第一阈值,则将所述解码速度调整为第二速度;所述第二速度小于所述第一速度;
[0012]若所述音频数据包的个数大于预设的第二阈值,则将所述播放速度调整为第三速度;所述第三速度大于所述第一速度。
[0013]优选地,所述第一速度表示为每播放完一个音频数据包即解码下一个音频数据包;所述第二速度表示为每播放完一个音频数据包并休眠预设时长后解码下一个音频数据包;所述第三速度表示为每播放完一个音频数据包并丢弃下一个音频数据包后,解码被丢弃的音频数据包的下一个音频数据包。
[0014]进一步地,所述音频播放方法还包括:
[0015]在将所述解码速度调整为所述第二速度时,开始计时,并循环检测所述解码速度是否仍为所述第二速度;
[0016]若是,则在计时的时长达到预设的时长阈值时,暂停解码操作,并将所述第一缓冲区扩大为第二缓冲区,以缓存接收到的音频数据包;
[0017]在检测到所述第二缓冲区中缓存的音频数据包的个数达到预设的第三阈值时,按照所述第一速度重新从所述第二缓冲区中读取音频数据包进行解码播放。
[0018]优选地,所述第二阈值为所述第一缓冲区中可缓存的音频数据包的个数,所述第一阈值为所述第一缓冲区中可缓存的音频数据包的个数的一半,所述第三阈值为所述第二缓冲区中可缓存的音频数据包的个数。
[0019 ]相应地,本发明还提供了一种音频播放装置,包括:
[0020]缓存模块,用于接收音频数据包,并将所述音频数据包缓存到第一缓冲区中;
[0021]检测模块,用于检测所述第一缓冲区中缓存的音频数据包的个数,并根据所述音频数据包的个数实时调整解码速度;以及,
[0022]播放模块,用于按照所述解码速度从所述第一缓冲区中读取音频数据包进行解码播放。
[0023]进一步地,所述检测模块具体包括:
[0024]检测单元,用于检测所述第一缓冲区中缓存的音频数据包的个数;
[0025]第一调整单元,用于在所述音频数据包的个数大于预设的第一阈值且小于预设的第二阈值时,将所述解码速度调整为第一速度;
[0026]第二调整单元,用于在所述音频数据包的个数小于预设的第一阈值时,将所述解码速度调整为第二速度;所述第二速度小于所述第一速度;
[0027]第三调整单元,用于在所述音频数据包的个数大于预设的第二阈值时,将所述播放速度调整为第三速度;所述第三速度大于所述第一速度。
[0028]优选地,所述第一速度表示为每播放完一个音频数据包即解码下一个音频数据包;所述第二速度表示为每播放完一个音频数据包并休眠预设时长后解码下一个音频数据包;所述第三速度表示为每播放完一个音频数据包并丢弃下一个音频数据包后,解码被丢弃的音频数据包的下一个音频数据包。
[0029]进一步地,所述音频播放装置还包括:
[0030]循环检测模块,用于在将所述解码速度调整为所述第二速度时,开始计时,并循环检测所述解码速度是否仍为所述第二速度;
[0031]缓冲区扩大模块,用于若循环检测所述解码速度仍为所述第二速度,则在计时的时长达到预设的时长阈值时,暂停解码操作,并将所述第一缓冲区扩大为第二缓冲区,以缓存接收到的音频数据包;以及,
[0032]重新播放模块,用于在检测到所述第二缓冲区中缓存的音频数据包的个数达到预设的第三阈值时,按照所述第一速度重新从所述第二缓冲区中读取音频数据包进行解码播放。
[0033]优选地,所述第二阈值为所述第一缓冲区中可缓存的音频数据包的个数,所述第一阈值为所述第一缓冲区中可缓存的音频数据包的个数的一半,所述第三阈值为所述第二缓冲区中可缓存的音频数据包的个数。
[0034]实施本发明实施例,具有如下有益效果:
[0035]本发明实施例提供的音频播放方法及装置,能够将接收到的音频数据包进行缓存,并根据缓存的音频数据包的个数来实时调整解码播放的速度,以适应不同的网络情况,保证音频播放的流畅性,同时提高用户体验度。
[0036]而且,在网络情况好时,加速解码播放缓存区内的音频数据包,在网络情况差时,减速解码播放缓存区内的音频数据包,以能最快恢复正常解码播放的速度,提高音频播放的流畅性;在网络情况极差时,扩大缓冲区的容量,以便在缓存更多的音频数据包后再进行解码播放,提高用户体验度。
【附图说明】
[0037]图1是本发明提供的音频播放方法的一个实施例的流程示意图;
[0038]图2是本发明提供的音频播放方法中步骤S2的一个实施例的流程示意图;
[0039]图3是本发明提供的音频播放装置的一个实施例的结构示意图;
[0040]图4是本发明提供的音频播放装置中检测模块的一个实施例的结构示意图。
【具体实施方式】
[0041]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0042]参见图1,本发明提供的音频播放方法的一个实施例的流程示意图,包
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1