一种解决播放时间跳变的方法及客户端的制作方法

文档序号:7553420阅读:135来源:国知局
专利名称:一种解决播放时间跳变的方法及客户端的制作方法
技术领域
本发明涉及多媒体技术领域,尤其涉及一种解决播放时间跳变的方法及客户端。
背景技术
随着多媒体技术的不断发展,出现了多种播放器,如Media Player、KMPlayer等等,对于文件媒体的播放已经做的非常好,然而,对于持续流媒体的播放,则缺乏后台服务的支持,因此无法完成流媒体的直播,而必须先将媒体转存为单独的磁盘文件形式,再进行播放。在现有技术中,客户端可通过M3U8协议请求流媒体播放,其中,在M3U8协议中,流媒体是以分段TS (英文全称为-Transport Stream)流的格式分段存放在多个服务器上的,且流媒体分段后的得到的分段TS流所在的服务器路径可保存在该流媒体对应的M3U8文件中,该M3U8文件则保存在某一个服务器上,客户端通过M3U8协议向服务器请求流媒体播放时,服务器将该返回该客户端请求播放的流媒体的M3U8文件,且将解析该M3U8文件,获取该流媒体的分段TS流的服务器地址,并分别按照分段TS流的服务器地址下载相应的分段TS流进行缓存,并等待客户端的播放器对该流媒体的超文本传输协议(英文全称为:Hypertext transfer protocol,缩写为:http)请求,及播放保存的分段TS流。目前,客户端依据M3U8文件中描述的分段TS流的播出时间标记(英文全称为:Presentation Time Stamp,缩写为:PTS)轮流播放分段TS流,其中,PTS是TS流打包格式中的一个字段,客户端在解析分段TS流时需要依据PTS确定解码器何时对该分段TS流进行解码,播放时显示播放时长也需要利用PTS进行确定。然而,由于分段TS流之间的PTS是不连续的,将导致在使用M3U8协议播放流媒体时,播放时间会出现跳变,不是连续递增显示,且由于播放时间不能连续递增显示,将导致用户体验较差。

发明内容
本发明实施例提供了一种解决播放时间跳变的方法及客户端,用于客户端在播放流媒体时,避免播放时间跳变的问题,使得显示的播放时间能够连续递增,改善用户的体验。本发明提供了一种解决播放时间跳变的方法,可包括:在播放流媒体时,获取所述流媒体已播放完的分段TS流的总播放时长,当前播放的分段TS流的初始播放时间点及当前播放时间点;利用所述总播放时长、所述初始播放时间点及当前播放时间点计算所述流媒体需要显示的播放时间。本发明实提供了一种客户端,可包括:第一获取单元,用于在播放流媒体时,获取所述流媒体已播放完的分段TS流的总播放时长,当前播放的分段TS流的初始播放时间点及当前播放时间点;
计算单元,用于利用所述第一获取单元获取的所述总播放时长、所述初始播放时间点及当前播放时间点计算所述流媒体需要显示的播放时间。从以上技术方案可以看出,本发明实施例具有以下优点:在播放流媒体时,客户端获取该流媒体已播放完的分段TS流的总播放时长,当前播放的分段TS流的初始播放时间点及当前播放时间点,并利用该总播放时长、初始播放时间点及当前播放时间点计算流媒体需要显示的播放时间,通过计算确定流媒体的播放时间,能够有效的避免播放时间跳变的问题,使得播放时间能够连续递增显示,提高用户的体验。


图1为本发明实施例中一种解决播放时间跳变的方法的一个示意图;图2为本发明实施例中一种解决播放时间跳变的方法的另一示意图;图3为本发明实施例一个流媒体的分段TS流的一个示意图;图4为本发明实施例中客户端的结构的另一示意图;图5为本发明实施例中客户端的结构的另一示意图。
具体实施例方式本发明实施例提供了一种解决播放时间跳变的方法及客户端,用于客户端在播放流媒体时,避免播放时间跳变的问题,使得显示的播放时间能够连续递增,改善用户的体验。在本发明实施例中,客户端若需要播放流媒体,可向保存了该流媒体的M3U8文件的服务器发送流媒体播放请求,且服务器在接收到该流媒体播放请求之后向该客户端反馈相应的M3U8文件,客户端解析该M3U8文件获取该流媒体的所有的分段TS流所在的服务器的下载地址,并按照获取到的服务器的下载地址向相应的服务器下载对应的分段TS流,并进行缓存。在本发明实施例中,客户端将启动播放器,并发起播放器对该缓存的流媒体的分段TS流的http请求,播放器获取流媒体的分段TS流的缓存地址,按照分段TS流的播放顺序依次播放。下面将具体介绍在播放流媒体的分段TS流时,避免播放时间跳变的方法,请参阅图1,为本发明实施例中一种解决播放时间跳变的方法的实施例,包括:101、在播放流媒体时,获取流媒体已播放完的分段TS流的总播放时长,当前播放的分段TS流的初始播放时间点及当前播放时间点;在本发明实施例中,在播放流媒体时,客户端将获取流媒体已播放完的分段TS流的总播放时长,当前播放的分段TS流的初始播放时间点及当前播放时间点,其中,流媒体已播放完的分段TS流的总播放时长为当前播放的分段TS流之前播放的分段TS流总的播放时间,当前播放的分段TS流的初始播放时间点为利用该分段TS流的PTS计算得到的该分段TS流在该流媒体上的播放时间点。例如:已播放的分段TS流包括分段TS流A和B,当前播放的分段TS流为C,则总播放时长为分段TS流A和B的播放时间的和。102、利用总播放时长、初始播放时间点及当前播放时间点计算流媒体需要显示的播放时间。在本发明实施例中,客户端将利用已播放完的分段TS流的总播放时长、当前播放的分段TS流的初始播放时间点及当前播放时间点计算流媒体需要显示的播放时间。在播放流媒体时,客户端获取该流媒体已播放完的分段TS流的总播放时长,当前播放的分段TS流的初始播放时间点及当前播放时间点,并利用该总播放时长、初始播放时间点及当前播放时间点计算流媒体需要显示的播放时间,通过计算确定流媒体的播放时间,能够有效的避免播放时间跳变的问题,使得播放时间能够连续递增显示,提高用户的体验。为了更好的理解本发明实施例中的技术方案,请参阅图2,为本发明实施例中一种解决播放时间跳变的方法的实施例,包括:201、在播放流媒体时,获取流媒体已播放完的分段TS流的总播放时长,当前播放的分段TS流的初始播放时间点及当前播放时间点;在本发明实施例中,步骤201与图1所示实施例中步骤101描述的内容相似,此处不再赘述。202、将当前播放时间点减去初始播放时间点得到当前播放的分段TS流的已播放时间;在本发明实施例中,客户端可将当前播放时间点减去初始播放时间点得到当前播放的分段TS流的已播放时间。例如:若当前播放时间点为50分,初始播放时间点为40分,则当前播放的分段TS流的已播放时间为10分。203、将当前播放的分段TS流的已播放时间加上总播放时长得到流媒体需要显示的播放时间;在本发明实施例中,客户端将当前播放的分段TS流的已播放时间加上该流媒体已播放完的分段TS流的总播放时长得到流媒体需要显示的播放时间,例如:若当前播放的分段TS流已播放时间为10分钟,已播放完的分段TS流的总播放时长为40分钟,则该流媒体需要显示的播放时间为50分钟。204、在当前播放流媒体的播放器上显示计算得到的播放时间。在本发明实施例中,客户端在确定需要显示的播放时间之后,将在当前播放流媒体的播放器上显示计算得到的播放时间。需要说明的是,在本发明实施例中,每次在一个分段TS流播放完之后,都需要更新流媒体的已播放完的分段TS流的总播放时长,具体为:若当前播放的分段TS流已经播放完,则客户端获取该分段TS流的结束播放时间点,利用该结束播放时间点及该分段TS流的初始播放时间更新总播放时长。其中计算更新后的总播放时长包括:将结束播放时间点减去初始播放时间点得到当前播放分段TS流的播放时长;将总播放时长加上播放时长作为更新后的总播放时长。在本发明实施例中,客户端通过利用已播放完的分段TS流的总播放时长、当前播放的分段TS流的初始播放时间点及当前播放时间点计算播放器需要显示的播放时间,能够有效的避免播放时间的跳变问题,使得播放时间能够连续递增,改善用户的体验。为了更好的理解本发明实施例中的技术方案,下面将具体的描述一个应用场景。请参阅图3,为本发明实施例中的的一个流媒体的分段TS流,包括:分段TS流1,分段TS流2,分段TS流3,其中,A和B分别为分段TS流I的初始播放时间点和结束播放时间点,C和D分别为分段TS流2的初始播放时间点和结束播放时间点,E和F分别为分段TS流3的初始播放时间点和结束播放时间点,且均是利用分段TS流的PTS计算得到的。在本发明实施例中,播放时间计算方式为:Time=Z+PTS (x)-P (y);其中,Time表示为计算得到的播放时间,Z表示流媒体已播放的分段TS流的总播放时长,PTS (X)表示当前播放的分段TS流的当前播放时间点,P (y)表示当前播放TS流的初始播放时间点,其中,y可以是A,C或E。则在播放分段TS流I时,Z=O,则播放时间的计算方式为Time=PTS (x) -P (A);在播放完分段TS流I后,更新Z的值,得到Z=PTS (B)-P (A) =Zl ;在播放分段TS流2时,Z=Zl,则播放时间的计算方式为Time=Zl+PTS (x) -P (C);在播放完分段TS流2后,更新Z的值,得到Z=Z1+PTS (D) -P (C) =Z1+Z2 ;在播放分段TS流3时,Z=Z1+Z2,则播放时间的计算方式为Time=Zl+Z2+PTS(x)_P(E)。在本发明实施例中,客户端将根据计算得到的播放时间在播放器上显示。请参阅图4,为本发明实施例中客户端的结构的实施例,包括:第一获取单元401,用于在播放流媒体时,获取流媒体已播放完的分段TS流的总播放时长,当前播放的分段TS流的初始播放时间点及当前播放时间点;计算单元402,用于利用获取单元获取的总播放时长、初始播放时间点及当前播放时间点计算流媒体需要显示的播放时间。在本发明实施例中,在播放流媒体时,第一获取单元401获取流媒体已播放完的分段TS流的总播放时长,当前播放的分段TS流的初始播放时间点,及当前播放时间点,接着由计算单元402利用获取单元401获取到的参数计算流媒体需要显示的播放时间。在播放流媒体时,客户端获取该流媒体已播放完的分段TS流的总播放时长,当前播放的分段TS流的初始播放时间点及当前播放时间点,并利用该总播放时长、初始播放时间点及当前播放时间点计算流媒体需要显示的播放时间,通过计算确定流媒体的播放时间,能够有效的避免播放时间跳变的问题,使得播放时间能够连续递增显示,提高用户的体验。为了更好的理解本发明实施例中的客户端,请参阅图5,为本发明实施例中客户端结构的实施例,包括:如图4所示实施例中的第一获取单元401,及计算单元402,且与图4所示实施例中描述的内容相似,此处不再赘述。在本发明实施例中,计算单元402包括:第一计算单元501,用于在第一获取单元之后,将当前播放时间点减去初始播放时间点得到当前播放的分段TS流的已播放时间;第二计算单元502,用于在第一计算单元得到当前播放的分段TS流的已播放时间之后,将当前播放的分段TS流的已播放时间加上总播放时长得到流媒体需要显示的播放时间。在本发明实施例中,客户端还包括:第二获取单元503,用于若当前播放的分段TS流已经播放完,则获取当前播放的分段TS流的结束播放时间点;更新单元504,用于在第二获取单元503获取当前播放的分段TS流的结束播放时间点之后,利用结束播放时间点及初始播放时间点更新总播放时长。其中,更新单元504包括:第二计算单元5041,用于将结束播放时间点减去初始播放时间点得到当前播放分段TS流的播放时长;第三计算单元5042,用于在第二计算单元得到播放时长之后,将总播放时长加上播放时长作为更新后的总播放时长。在本发明实施例中,客户端还包括:显示单元505,用于在计算单元402得到播放时间之后,在当前播放流媒体的播放器上显示计算得到的播放时间。在本发明实施例中,在播放流媒体时,第一获取单元401获取流媒体已播放完的分段TS流的总播放时长,当前播放的分段TS流的初始播放时间点,及当前播放时间点,接着由计算单元402中的第一计算单元501将当前播放时间点减去初始播放时间点得到当前播放的分段TS流的已播放时间;接着由计算单元402中的第二计算单元502将当前播放的分段TS流的已播放时间加上总播放时长得到流媒体需要显示的播放时间,且由显示单元505在当前播放流媒体的播放器上显示计算得到的播放时间。此外,若当前播放的分段TS流已经播放完,则第二获取单元503获取当前播放的分段TS流的结束播放时间点;更新单元504利用结束播放时间点及初始播放时间点更新总播放时长,使得在播放下一个分段TS流的播放时间时,可利用更新后的总播放时长计算,更新单元504的具体的更新过程包括:第二计算单元5041将结束播放时间点减去初始播放时间点得到当前播放分段TS流的播放时长;接着,第三计算单元5042将总播放时长加上播放时长作为更新后的总播放时长。在本发明实施例中,客户端通过利用已播放完的分段TS流的总播放时长、当前播放的分段TS流的初始播放时间点及当前播放时间点计算播放器需要显示的播放时间,能够有效的避免播放时间的跳变问题,使得播放时间能够连续递增,改善用户的体验。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上对本发明所提供的一种解决播放时间跳变的方法及客户端进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种解决播放时间跳变的方法,其特征在于,包括: 在播放流媒体时,获取所述流媒体已播放完的分段TS流的总播放时长,当前播放的分段TS流的初始播放时间点及当前播放时间点; 利用所述总播放时长、所述初始播放时间点及当前播放时间点计算所述流媒体需要显示的播放时间。
2.根据权利要求1所述的方法,其特征在于,所述利用所述总播放时长,所述初始播放时间点及当前播放时间点计算所述流媒体需要显示的播放时间包括: 将所述当前播放时间点减去所述初始播放时间点得到所述当前播放的分段TS流的已播放时间; 将所述当前播放的分段TS流的已播放时间加上所述总播放时长得到所述流媒体需要显示的播放时间。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括: 若所述当前播放的分段TS流已经播放完,则获取所述当前播放的分段TS流的结束播放时间点; 利用所述结束播放时间点及所述初始播放时间点更新所述总播放时长。
4.根据权利要求3所述的方法,其特征在于,所述利用所述结束播放时间点及所述初始播放时间点更新所述总播放时长包括: 将所述结束播放时间点减去所述初始播放时间点得到所述当前播放分段TS流的播放时长; 将所述总播放时长加上所述播放时长作为更新后的总播放时长。
5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括: 在当前播放所述流媒体的播放器上显示计算得到的所述播放时间。
6.一种客户端,其特征在于,包括: 第一获取单元,用于在播放流媒体时,获取所述流媒体已播放完的分段TS流的总播放时长,当前播放的分段TS流的初始播放时间点及当前播放时间点; 计算单元,用于利用所述第一获取单元获取的所述总播放时长、所述初始播放时间点及当前播放时间点计算所述流媒体需要显示的播放时间。
7.根据权利要求6所述的客户端,其特征在于,所述计算单元包括: 第一计算单元,用于在所述第一获取单元之后,将所述当前播放时间点减去所述初始播放时间点得到所述当前播放的分段TS流的已播放时间; 第二计算单元,用于在所述第一计算单元得到所述当前播放的分段TS流的已播放时间之后,将所述当前播放的分段TS流的已播放时间加上所述总播放时长得到所述流媒体需要显示的播放时间。
8.根据权利要求6或7所述的客户端,其特征在于,所述客户端还包括: 第二获取单元,用于若所述当前播放的分段TS流已经播放完,则获取所述当前播放的分段TS流的结束播放时间点; 更新单元,用于在所述第二获取单元获取所述当前播放的分段TS流的结束播放时间点之后,利用所述结束播放时间点及所述初始播放时间点更新所述总播放时长。
9.根据权利要求8所述的客户端,其特征在于,所述更新单元包括:第二计算单元,用于将所述结束播放时间点减去所述初始播放时间点得到所述当前播放分段TS流的播放时长; 第三计算单元,用于在所述第二计算单元得到所述播放时长之后,将所述总播放时长加上所述播放时长作为更新后的总播放时长。
10.根据权利要求6或7所述的客户端,其特征在于,所述客户端还包括: 显示单元,用于在所述计算单元得到所述播放时间之后,在当前播放所述流媒体的播放器上显示计算得到 的所述播放时间。
全文摘要
本发明实施例公开了一种解决播放时间跳变的方法及客户端。本发明实施例方法包括在播放流媒体时,获取流媒体已播放完的分段TS流的总播放时长,当前播放的分段TS流的初始播放时间点及当前播放时间点;利用总播放时长、初始播放时间点及当前播放时间点计算流媒体需要显示的播放时间,使得客户端在播放流媒体时,能够有效避免播放时间跳变的问题,使得显示的播放时间能够连续递增,改善用户的体验。
文档编号H04N21/845GK103152635SQ20131008198
公开日2013年6月12日 申请日期2013年3月14日 优先权日2013年3月14日
发明者陈欢 申请人:深圳市茁壮网络股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1