流媒体播放方法及流媒体播放器的制造方法
【技术领域】
[0001]本发明涉及计算机领域,特别涉及一种流媒体播放方法及流媒体播放器。
【背景技术】
[0002]随着移动互联网技术的发展,越来越多的人开始逐步远离笨重的电视、电脑,将日常生活中的媒体需求逐步向移动设备迁移。移动终端设备相对于传统电脑,移动终端有着轻便、便捷等优势。移动流媒体播放技术,广泛使用于移动终端设备。
[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]基于上述技术方案,本发明实施例的流媒体播放方法及流媒体播放器,将音频流存入音频解码缓存区,将视频流存入视频解码缓存区,并将解码后的音频流存入音频播放缓存区,将解码后的视频流存入视频播放缓存区,应用音频播放缓存区存储的音频数据及视频播放缓存区存储的视频数据进行播放。这样可以减小移动互联网的带宽制约及网络自身稳定性造成的减少丢帧、卡顿等现象,从而影响用户观看体验。
【附图说明】
[0038]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0039]图1为本发明实施例1提供的一种流媒体播放方法的流程图;
[0040]图2为本发明实施例2提供的一种流媒体播放方法的流程图;
[0041]图3为本发明实施例3提供的一种流媒体播放器的结构示意图;
[0042]图4为本发明实施例3提供的另一种流媒体播放器的结构示意图。
【具体实施方式】
[0043]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0044]实施例1
[0045]如图1所示,本实施例提供一种流媒体播放方法,该方法可以由流媒体播放器实现,该方法包括:
[0046]11、接收媒体流。
[0047]具体地,流媒体播放器可以接收头端设备或流媒体服务器发送的媒体流。
[0048]12、从所述媒体流中分离出音频流,将所述音频流存入音频解码缓存区,对所述音频解码缓存区存储的音频流进行解码,将解码后的音频数据存入音频播放缓存区。
[0049]13、从所述媒体流中分离出视频流,将所述视频流存入视频解码缓存区,对所述视频解码缓存区存储的视频流进行解码,将解码后的视频数据存入视频播放缓存区。
[0050]14、应用所述音频播放缓存区存储的音频数据及所述视频播放缓存区存储的视频数据进行播放。
[0051]本实施例中上述12、13可以变换执行顺序,也可以同时执行。
[0052]本实施例的方法,将音频流存入音频解码缓存区,将视频流存入视频解码缓存区,并将解码后的音频流存入音频播放缓存区,将解码后的视频流存入视