一种流媒体数据的播放方法、装置、计算机设备和存储介质与流程

文档序号:24497151发布日期:2021-03-30 21:25阅读:74来源:国知局
一种流媒体数据的播放方法、装置、计算机设备和存储介质与流程

本发明实施例涉及流媒体的技术领域,尤其涉及一种流媒体数据的播放方法、装置、计算机设备和存储介质。



背景技术:

在直播等场景中,多使用流媒体服务服务协议传输数据,该数据又称之为流媒体数据,即采用流式传输的方式在网络中传输媒体数据。

其中,媒体服务协议包括dash(dynamicadaptivestreamingoverhttp,自适应流媒体协议)、hls(httplivestreaming,流媒体传输协议)等。

在通过流媒体服务协议传输流媒体数据时,通常是分割流媒体数据为多个传输流文件(transportstream,ts),进而根据多个传输流文件的信息生成播放列表。这样,客户端下载播放列表(playlist,如m3u8(extendedm3u)),根据播放列表依次请求各个传输流文件的信息,并根据传输流文件的信息下载传输流文件之后进行播放。

这个过程包括下载播放列表、下载传输流文件,耗时为2-rtt(round-triptime,往返时延),并且,播放列表的内容较多,加载播放列表的时间较长,导致启动播放流媒体数据所需的时间较长。



技术实现要素:

本发明实施例提出了一种流媒体数据的播放方法、装置、计算机设备和存储介质,以解决启动播放流媒体数据所需的时间较长的问题。

第一方面,本发明实施例提供了一种流媒体数据的播放方法,包括:

显示流媒体数据的摘要信息,所述流媒体数据配置有第一地址;

接收作用于所述摘要信息的启动操作;

响应于所述启动操作,访问所述第一地址,以下载所述流媒体数据的第一目标传输流文件,所述第一目标传输流文件为排序小于或等于n的传输流文件;

若下载所述第一目标传输流文件完成,则播放所述第一目标传输流文件。

第二方面,本发明实施例还提供了一种流媒体数据的播放装置,包括:

摘要信息显示模块,用于显示流媒体数据的摘要信息,所述流媒体数据配置有第一地址;

启动操作接收模块,用于接收作用于所述摘要信息的启动操作;

第一目标传输流文件下载模块,用于响应于所述启动操作,访问所述第一地址,以下载所述流媒体数据的第一目标传输流文件,所述第一目标传输流文件为排序小于或等于n的传输流文件;

第一目标传输流文件播放模块,用于若下载所述第一目标传输流文件完成,则播放所述第一目标传输流文件。

第三方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括:

一个或多个处理器;

存储器,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的流媒体数据的播放方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如第一方所述的流媒体数据的播放方法。

在本实施例中,显示流媒体数据的摘要信息,接收作用于摘要信息的启动操作,响应于启动操作,访问第一地址,以下载流媒体数据的第一目标传输流文件,其中,第一目标传输流文件为排序小于或等于n的传输流文件,若下载第一目标传输流文件完成,则播放第一目标传输流文件,流媒体数据中初始的部分传输流文件的下载地址脱离播放列表,即该第一地址以独立的形式存在,并不依赖于播放列表、并非记录在播放列表中,在获取到第一地址之后,即可访问第一地址、下载初始的部分传输流文件进行播放,消耗的时间为1-rtt,节省了下载播放列表的时间,从而节省了启动播放流媒体数据所需的时间、提高了播放流媒体数据的秒开率(即1s内打开动图的比例)。

附图说明

图1为本发明实施例一提供的一种流媒体数据的播放方法的流程图;

图2为本发明实施例一提供的一种键控设备显示摘要信息的示例图;

图3为本发明实施例一提供的一种触控设备显示摘要信息的示例图;

图4是本发明实施例二提供的一种流媒体数据的播放方法的流程图;

图5为本发明实施例三提供的一种流媒体数据的播放装置的结构示意图;

图6为本发明实施例四提供的一种计算机设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1为本发明实施例一提供的一种流媒体数据的播放方法的流程图,本实施例可适用于直接下载流媒体数据前n个传输流文件进行播放的情况,该方法可以由流媒体数据的播放装置来执行,该流媒体数据的播放装置可以由软件和/或硬件实现,可配置在计算机设备中,例如,个人电脑、移动终端(如手机、平板电脑等)、可穿戴设备(如眼镜、手表等),等等,具体包括如下步骤:

步骤101、显示流媒体数据的摘要信息。

该计算机设备的操作系统可以包括android(安卓)、ios、windows等等,在该操作系统中可以安装支持播放流媒体数据的应用,例如,直播应用、浏览器、短视频应用、购物应用,等等。

在不同的应用中,流媒体数据的形式有所不同,例如,在直播应用、购物应用中,该流媒体数据可以为直播视频数据,在浏览器中,该流媒体数据可以为电视剧、电影,在短视频应用中,该流媒体数据可以为短视频数据,等等,本实施例对此不加以限制。

进一步而言,该应用可以为独立的应用,也可以为配置播放器的组件(如sdk(softwaredevelopmentkit,软件开发工具包))的应用,本实施例对此不加以限制。

用户启动应用,该应用向web(网页)服务器请求页面,从而在该应用中加载该应用的页面,在该页面中可显示相应的显示流媒体数据的摘要信息,该摘要信息为对流媒体数据起摘要作用的信息,例如,流媒体数据的缩略图、流媒体数据的标题、流媒体数据的观看数据(如点赞的数量、评论的数量、观看的数量等),等等。

在不同的应用中,可显示流媒体数据的摘要信息的页面也有所不同,例如,对于直播应用,可在主页、二级或二级以下的页面(如网游竞技、单机游戏、手游休闲)、直播间等页面中显示直播视频数据的摘要信息,对于短视频应用,可在主页、制作者的详情页面等页面中显示直播视频数据的摘要信息,等等,本实施例对此不加以限制。

由于流媒体数据的下载地址更新频率较高,通常由独立的流媒体服务器管理流媒体数据,该流媒体服务器将该流媒体数据切分为多个传输流文件,每个传输流文件均配置有下载地址,如url(uniformresourcelocator,统一资源定位器)。

该流媒体服务器将该流媒体数据的多个传输流文件按照时间顺序进行排序,使得后续按照该排序播放多个传输流文件,即,排序越前,播放的时间越前,反之,排序越后,播放的时间越后。

在本实施例中,将排序小于或等于n(n为正整数,如1、2、3、4等)的传输流文件设置为第一目标传输流文件,即,将最优先播放的n个传输流文件设置为第一目标传输流文件,为便于区分,对第一目标传输流文件配置的下载地址记为第一地址,即该流媒体数据配置有第一地址,该第一地址为流媒体数据中第一目标传输流文件的下载地址,该第一地址以独立的形式存在,并不依赖于播放列表(如m3u8),即第一地址并非记录在播放列表(如m3u8)中。

需要说明的是,第一目标传输流文件的数量n可以由本领域技术人员根据的网络、计算机设备等因素的实际情况进行设置,但第一目标传输流文件的数量n通常远小于传输流文件的总数量,例如,如果传输流文件的数量过多、计算机设备的性能受限,导致计算机设备解析传多个输流文件的下载地址耗时较多,此时,可以将第一目标传输流文件的数量n设置为较大的数值,如2、3,又例如,如果网络的质量较佳,传输多个传输流文件的下载地址较快,为减少对流媒体服务协议的影响,此时,可以将第一目标传输流文件的数量n设置为较大的数值,如1,等等,本实施例对此不加以限制。

一般情况下,应用在加载页面之后,根据该页面中流媒体数据的标识(如直播间的id)向流媒体服务器请求该流媒体数据的标识对应的第一地址。

具体而言,应用可针对流媒体数据(以流媒体数据的标识表示)向流媒体服务器发送查询请求,流媒体服务器在接收到查询请求时,在数据库中查询为该流媒体数据配置的第一地址,将该第一地址封装至查询响应中,并发送至应用。

此时,应用可接收流媒体服务器响应于查询请求发送的查询响应,从查询响应中提取第一地址。

当然,除了通过流媒体服务器分发流媒体数据的第一地址之外,应用还可以通过其他方式获取流媒体数据的第一地址,例如,流媒体服务器将流媒体数据的第一地址传输至web服务器,web服务器将流媒体数据的第一地址封装至相应页面的文档(如html(hypertextmarkuplanguage,超文本标记语言)文档)中,随同页面的文档时一同将流媒体数据的第一地址发送至应用,等等,本实施例对此不加以限制。

步骤102、接收作用于摘要信息的启动操作。

用户浏览各个流媒体数据的摘要信息,获知各个流媒体数据大体的内容,对于可能感兴趣的流媒体数据,用户可以针对该流媒体数据的摘要信息触发启动操作,指示应用加载并播放该流媒体数据。

针对不同的计算机设备,用户触发作用于摘要信息的启动操作的方式也有所不同。

若计算机设备为支持键控操作的设备,如个人电脑等,则用户可以通过与计算机设备连接的外置设备,利用键控的方式针对摘要信息触发单击、长按等操作,从而选定摘要信息,以使应用接收到作用于摘要信息的启动操作。其中,外置设备包括但不限定于鼠标、键盘等。

例如,如图2所示,个人电脑中的浏览器加载了直播间,该直播间包括首屏区域210、非首屏区域220,在首屏区域210可显示对于直播较为重要的信息,例如,导航栏201、直播画面202、公告栏203、榜单204、直播间的交互窗口205,等等,在非首屏区域220可显示对于直播较为次要的信息,例如,动态栏目206、公会栏目207、推荐栏目208,等等。

其中,榜单204、动态栏目206、推荐栏目208中的信息为直播视频数据(流媒体数据)的摘要信息,用户使用鼠标、键盘等方式点击榜单204、动态栏目206、推荐栏目208中的信息,可视为触发作用于摘要信息的启动操作。

若计算机设备为支持触控操作的设备,如移动终端等,则用户可以通过触控的方式,利用手指或者触控笔针对摘要信息触发单击、长按等触控操作,从而选定摘要信息,以使应用接收到作用于摘要信息的启动操作。

例如,如图3所示,移动终端的直播应用加载了直播平台的主页,在主页中显示了多个直播间的摘要信息301,如缩略图、主播的头像、直播间观看人数,等等,用户使用手指点击摘要信息301,可视为触发作用于摘要信息的启动操作。

步骤103、响应于启动操作,访问第一地址,以下载流媒体数据的第一目标传输流文件。

在计算机设备中配置有可支持播放流媒体数据的播放器,如android系统中的videoview,该播放器可以为独立于应用的组件,也可以为该应用中的组件(如sdk),本实施例对此不加以限制。

应用在接收到作用于摘要信息的启动操作时,查询对该摘要信息所属流媒体数据配置的第一地址,并启动播放器,以videoview为例,应用可添加video_view,使用setplayerview接口将它与刚添加到界面上的video_view控件进行关联。

应用将该第一地址传输至播放器、从而启动播放器,该播放器访问该第一地址,从而下载流媒体数据的第一目标传输流文件。

步骤104、若下载第一目标传输流文件完成,则播放第一目标传输流文件。

如果播放器完成下载第一目标传输流文件,则播放器可以对第一目标传输流文件进行渲染,从而播放该第一目标传输流文件。

在本实施例中,显示流媒体数据的摘要信息,接收作用于摘要信息的启动操作,响应于启动操作,访问第一地址,以下载流媒体数据的第一目标传输流文件,其中,第一目标传输流文件为排序小于或等于n的传输流文件,若下载第一目标传输流文件完成,则播放第一目标传输流文件,流媒体数据中初始的部分传输流文件的下载地址脱离播放列表,即该第一地址以独立的形式存在,并不依赖于播放列表、并非记录在播放列表中,在获取到第一地址之后,即可访问第一地址、下载初始的部分传输流文件进行播放,消耗的时间为1-rtt,节省了下载播放列表的时间,从而节省了启动播放流媒体数据所需的时间、提高了播放流媒体数据的秒开率(即1s内打开动图的比例)。

经测试,将本实施例应用于直播的点播服务,直播视频数据的秒开率可提升3%。

实施例二

图4为本发明实施例二提供的一种流媒体数据的播放方法的流程图,本实施例以前述实施例为基础,进一步增加解析播放列表的操作,该方法具体包括如下步骤:

步骤401、显示流媒体数据的摘要信息。

流媒体服务器将该流媒体数据的多个传输流文件按照时间顺序进行排序,并将多个传输流文件的下载地址按照时间顺序记录在播放列表(如m3u8)中,即播放列表(如m3u8)的内部信息记录的是一系列媒体片段资源(即传输流文件),顺序播放该媒体片段资源,即可完整展示流媒体数据。

以m3u8作为示例,则m3u8的格式如下:

#extm3u

#ext-x-targetduration:10

#extinf:9.009,

http://media.example.com/first.ts

#extinf:9.009,

http://media.example.com/second.ts

#extinf:3.003,

http://media.example.com/third.ts

当m3u8作为主播放列表(masterplaylist)时,其内部提供的是同一份媒体资源的多份流列表资源(variantstream)。其格式如下所示:

#extm3u

#ext-x-stream-inf:bandwidth=150000,resolution=416x234,codecs="avc1.42e00a,mp4a.40.2"

http://example.com/low/index.m3u8

#ext-x-stream-inf:bandwidth=240000,resolution=416x234,codecs="avc1.42e00a,mp4a.40.2"

http://example.com/lo_mid/index.m3u8

#ext-x-stream-inf:bandwidth=440000,resolution=416x234,codecs="avc1.42e00a,mp4a.40.2"

http://example.com/hi_mid/index.m3u8

#ext-x-stream-inf:bandwidth=640000,resolution=640x360,codecs="avc1.42e00a,mp4a.40.2"

http://example.com/high/index.m3u8

#ext-x-stream-inf:bandwidth=64000,codecs="mp4a.40.5"

http://example.com/audio/index.m3u8

针对流媒体服务协议,如hls,整个流媒体数据分成一个个小的基于http(hypertexttransferprotocol,超文本传输协议)的传输流文件ts来下载,每次下载部分传输流文件ts。当流媒体数据正在播放时,应用可以选择从许多不同的备用源中以不同的速率下载同样的传输流文件ts,允许流媒体会话适应不同的数据速率。在开始一个流媒体会话时,应用会下载一个包含元数据的播放列表(如m3u8),用于寻找可用的媒体流。

当然,除了多个传输流文件的下载地址之外,播放列表(如m3u8)还可以附带其他描述信息,如带宽信息等,用于提供给应用。

对于电视剧、电影、短视频等点播而言,应用按顺序下载传输流文件ts,依次进行播放即可。而对于直播而言,应用是定时重新请求该播放列表(如m3u8),查询新的传输流文件ts,下载新的传输流文件ts进行播放。

在本实施例中,可对流媒体数据配置第一地址、第二地址,其中,第一地址为所述流媒体数据中第一目标传输流文件的下载地址、第二地址为流媒体数据中播放列表(如m3u8)的下载地址。

一般情况下,应用在加载页面之后,根据该页面中流媒体数据的标识(如直播间的id)向流媒体服务器请求该流媒体数据的标识对应的第一地址、第二地址。

具体而言,应用可针对所述流媒体数据(以流媒体数据的标识表示)向流媒体服务器发送查询请求,流媒体服务器在接收到查询请求时,在数据库中查询为该流媒体数据配置的第一地址、第二地址,将该第一地址、第二地址封装至查询响应中,并发送至应用。

此时,应用可接收流媒体服务器响应于查询请求发送的查询响应,从查询响应中提取第一地址、第二地址。

由于hls等流媒体服务协议是约定传输流媒体数据中播放列表(如m3u8)的下载地址(即第二地址),而本实施例除了传输播放列表(如m3u8)的下载地址(即第二地址)之外,还传输排序小于或等于n的传输流文件的下载地址(即第一地址),为便于区分第一地址、第二地址,流媒体服务器可以约定在查询响应中为第一地址标记第一标签,为第二地址标记第二标签。

因此,应用在解析查询响应时,可按照约定分别在查询响应中识别第一标签、第二标签,一方面,在查询响应中查找标记第一标签的字符串,获得第一地址,另一方面在查询响应中查找标记所述第二标签的字符串,获得第二地址。

当然,除了通过流媒体服务器分发流媒体数据的第一地址、第二地址之外,应用还可以通过其他方式获取流媒体数据的第一地址、第二地址,例如,流媒体服务器将流媒体数据的第一地址、第二地址传输至web服务器,web服务器将流媒体数据的第一地址、第二地址封装至相应页面的文档(如html文档)中,随同页面的文档时一同将流媒体数据的第一地址、第二地址发送至应用,等等,本实施例对此不加以限制。

步骤402、接收作用于摘要信息的启动操作。

步骤403、响应于启动操作,访问第一地址,以下载流媒体数据的第一目标传输流文件。

其中,第一目标传输流文件为排序小于或等于n的传输流文件。

步骤404、若下载第一目标传输流文件完成,则播放第一目标传输流文件。

步骤405、若下载第一目标传输流文件完成,则访问第二地址,以下载流媒体数据的播放列表。

在本实施例中,应用除了将第一地址传入播放器之外,还可以将第二地址传入播放器,为便于区分第一地址、第二地址,应用调用播放器的api(applicationprogramminginterface,应用程序接口)生成调用请求时,可以约定在调用请求中为第一地址标记第三标签,为第二地址标记第四标签。

因此,播放器在解析调用请求时,可按照约定分别从调用请求识别第三标签、第四标签,一方面,在调用请求中查找标记第三标签的字符串,获得第一地址,另一方面,在调用请求中查找标记第四标签的字符串,获得第二地址。

在本实施例中,播放器访问第一地址、下载流媒体数据的第一目标传输流文件与播放器访问第二地址、下载流媒体数据的播放列表(如m3u8)属于串行操作。

进一步而言,播放器首先访问该第一地址、下载流媒体数据的第一目标传输流文件,在下载流媒体数据的第一目标传输流文件完成时,然后访问第二地址、下载流媒体数据的播放列表(如m3u8),避免下载流媒体数据的播放列表(如m3u8)抢占计算机设备的资源(如带宽、处理器资源、内存资源等),将计算机设备的资源(尤其为带宽)尽可能地分配至下载流媒体数据的第一目标传输流文件,提高下载流媒体数据的第一目标传输流文件的速度,降低下载流媒体数据的第一目标传输流文件的耗时,从而提高启动流媒体数据的效率。

此外,在下载流媒体数据的第一目标传输流文件完成之后,对带宽资源并不敏感,此时,播放器播放流媒体数据的第一目标传输流文件与播放器访问二地址、下载流媒体数据的播放列表(如m3u8)属于并行操作,下载流媒体数据的播放列表(如m3u8)抢占计算机设备的资源对第一目标传输流文件的影响较小,可忽略。

步骤406、访问第三地址,以下载流媒体数据中的第二目标传输流文件。

在播放列表(如m3u8)记录有多个传输流文件的下载地址,为便于区分,该传输流文件的下载地址记为第三地址。

播放器遍历播放列表(如m3u8)中的各个传输流文件,筛选出与第一目标传输流文件属于同一个流媒体文件、且排序大于n的传输流文件,作为第二目标传输流文件,即第二目标传输流文件为排序大于n的传输流文件。

该播放器访问二目标传输流文件对应的第三地址,从而下载流媒体数据的第二目标传输流文件。

一般情况下,一个传输流文件ts的时间长度从几秒到几分钟不等,在几秒的时间内,播放器可以完成下载流媒体数据的播放列表(如m3u8),并解析播放列表,下载流媒体数据中的第二目标传输流文件,因此,为尽可能减少对流媒体服务协议的改动,保持流媒体服务协议的通用性,n优选为1,即客户端访问第一地址,以下载流媒体数据的第一个传输流文件,若下载第一个传输流文件完成,则播放第一个传输流文件,以及,访问第二地址,以下载流媒体数据的播放列表,访问播放列表中的第三地址,以下载流媒体数据中的第二个及第二个之后的传输流文件。

在本发明的一个实施例中,所述步骤406可以包括如下步骤:

步骤4061、查询第四地址。

步骤4062、将第四地址与第三地址进行比较。

为保持流媒体协议的通用性,流媒体数据的播放列表(如m3u8)可以完成记录流媒体数据中所有的传输流文件ts,即流媒体数据的播放列表(如m3u8)中同时存在第一目标传输流文件、第二目标传输流文件。

因此,播放器在遍历播放列表(如m3u8)中的各个传输流文件时,筛选出第一目标传输流文件,以便区分第二目标传输流文件。

具体而言,播放器可查询当前的第四地址,并将各个第四地址分别与播放列表(如m3u8)中的各个第三地址进行比较,其中,该第四地址为已完成下载的传输流文件的下载地址。

需要说明的是,由于缓存的时效、用户转跳其他流媒体文件等因素存在,第四地址可能包含当前流媒体数据中传输流文件ts的下载地址、也可以包含其他流媒体数据中传输流文件ts的下载地址,该第四地址可能与第一地址相同,也可能与第二地址不同,本实施例对此不加以限制。

步骤4063、若第四地址与部分第三地址相同,则按照顺序访问与第四地址不同的部分第三地址,以下载流媒体数据中的第二目标传输流文件。

针对第四地址与第三地址对比的结果,如果第四地址与部分第三地址相同,相同的部分为同一流媒体数据中传输流文件ts的下载地址,即第一地址,此时,播放器可按照顺序访问排序该第一地址之后的其他第三地址,这些地址与第四地址均不相同,表示第二目标传输流文件的下载地址,从而下载流媒体数据中的第二目标传输流文件。

在本发明的一个实施例中,播放器可能设置有一些机制,如播放传输流文件失败会重新下载传输流文件,会重新遍历播放列表(如m3u8)下载传输流文件,为避免这些机制重新遍历播放列表(如m3u8)下载传输流文件导致重复下载第一目标文件,导致流媒体数据重复播放相同的内容,可在播放列表(如m3u8)中删除与第四地址相同的部分第三地址,即在播放列表(如m3u8)中删除第一地址,从而保证流媒体数据的内容。

此外,流媒体服务器也可以直接在播放列表(如m3u8)中删除第一地址,播放器下载播放列表(如m3u8)之后,按照顺序依次访问播放列表(如m3u8)中的第三地址,以下载流媒体数据中的第二目标传输流文件,本实施例对此不加以限制。

步骤407、在播放第一目标传输流文件完成时,播放第二目标传输流文件。

在播放第一目标传输流文件的期间,通常可以完成下载第二目标传输流文件,在播放第一目标传输流文件完成时,可以按照顺序继续播放第二目标传输流文件,使得流媒体数据的内容连贯,准确地播放流媒体数据。

进一步而言,播放器生成一个缓存队列,播放器会按照fifo(firstinputfirstoutput,先进先出)的方式从缓存队列中读取传输流文件ts进行播放,播放器在下载第一目标传输流文件完成时,按照顺序将该第一目标传输流文件写入该缓存队列中,播放器在下载第二目标传输流文件完成时,按照顺序将该第二目标传输流文件写入该缓存队列中。

针对第四地址与第三地址对比的结果,若第四地址与所有第三地址均不同,表示第四地址中并不存在当前流媒体数据的第一地址,可能出现第一目标传输流文件下载失败、用户跳转其他流媒体数据等情况,此时,播放器按照播放列表(如m3u8)中排列的顺序访问第三地址,以下载流媒体数据的传输流文件,作为第三目标传输流文件,在完成下载至少一个第三目标传输流文件时,暂停播放第一目标传输流文件,以及,播放第三目标传输流文件,从而保证流媒体数据准确地播放。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

实施例三

图5为本发明实施例三提供的一种流媒体数据的播放装置的结构框图,具体可以包括如下模块:

摘要信息显示模块501,用于显示流媒体数据的摘要信息,所述流媒体数据配置有第一地址;

启动操作接收模块502,用于接收作用于所述摘要信息的启动操作;

第一目标传输流文件下载模块503,用于响应于所述启动操作,访问所述第一地址,以下载所述流媒体数据的第一目标传输流文件,所述第一目标传输流文件为排序小于或等于n的传输流文件;

第一目标传输流文件播放模块504,用于若下载所述第一目标传输流文件完成,则播放所述第一目标传输流文件。

在本发明的一个实施例中,所述流媒体数据还配置有第二地址,所述装置还包括:

播放列表下载模块,用于若下载所述第一目标传输流文件完成,则访问所述第二地址,以下载所述流媒体数据的播放列表,所述播放列表具有多个第三地址;

第二目标传输流文件下载模块,用于访问所述第三地址,以下载所述流媒体数据中的第二目标传输流文件,所述第二目标传输流文件为排序大于n的传输流文件;

第二目标传输流文件播放模块,用于在播放所述第一目标传输流文件完成时,播放所述第二目标传输流文件。

在本发明的一个实施例中,所述第二目标传输流文件下载模块包括:

下载地址查询子模块,用于查询第四地址,所述第四地址为已完成下载的传输流文件的下载地址;

下载地址比较子模块,用于将所述第四地址与所述第三地址进行比较;

相异下载子模块,用于若所述第四地址与部分所述第三地址相同,则按照顺序访问与所述第四地址不同的部分所述第三地址,以下载所述流媒体数据中的第二目标传输流文件。

在本发明的一个实施例中,所述第二目标传输流文件下载模块还包括:

下载地址删除子模块,用于在所述播放列表中删除与所述第四地址相同的部分所述第三地址。

在本发明的一个实施例中,还包括:

第三目标传输流文件下载模块,用于若所述第四地址与所有所述第三地址均不同,则按照顺序访问所述第三地址,以下载所述流媒体数据的传输流文件,作为第三目标传输流文件;

第三目标传输流文件播放模块,用于暂停播放所述第一目标传输流文件,以及,播放所述第三目标传输流文件。

在本发明实施例的一个示例中,所述n为1。

在本发明的一个实施例中,还包括:

查询请求发送模块,用于针对所述流媒体数据向流媒体服务器发送查询请求;

查询响应接收模块,用于接收所述流媒体服务器响应于所述查询请求发送的查询响应;

下载地址提取模块,用于从所述查询响应中提取第一地址、第二地址,所述第一地址为所述流媒体数据中第一目标传输流文件的下载地址、所述第二地址为所述流媒体数据中播放列表的下载地址。

在本发明的一个实施例中,所述下载地址提取模块包括:

标签识别子模块,用于在所述查询响应中识别第一标签、第二标签;

第一地址查找子模块,用于在所述查询响应中查找标记所述第一标签的字符串,获得第一地址;

第二地址查找子模块,用于在所述查询响应中查找标记所述第二标签的字符串,获得第二地址。

本发明实施例所提供的流媒体数据的播放装置可执行本发明任意实施例所提供的流媒体数据的播放方法,具备执行方法相应的功能模块和有益效果。

实施例四

图6为本发明实施例四提供的一种计算机设备的结构示意图。图6示出了适于用来实现本发明实施方式的示例性计算机设备12的框图。图6显示的计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图6所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。

总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。

计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图6未显示,通常称为“硬盘驱动器”)。尽管图6中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。

计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的流媒体数据的播放方法。

实施例五

本发明实施例五还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述流媒体数据的播放方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

其中,计算机可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1