专利类型 | 发明公开 | 法律事件 | 公开; 实质审查; |
专利有效性 | 实质审查 | 当前状态 | 实质审查 |
申请号 | CN202310395058.X | 申请日 | 2023-04-13 |
公开(公告)号 | CN116366892A | 公开(公告)日 | 2023-06-30 |
申请人 | 北京思明启创科技有限公司; | 申请人类型 | 企业 |
发明人 | 王宇航; 陈向东; 贾强强; 吴寒潇; | 第一发明人 | 王宇航 |
权利人 | 北京思明启创科技有限公司 | 权利人类型 | 企业 |
当前权利人 | 北京思明启创科技有限公司 | 当前权利人类型 | 企业 |
省份 | 当前专利权人所在省份:北京市 | 城市 | 当前专利权人所在城市:北京市海淀区 |
具体地址 | 当前专利权人所在详细地址:北京市海淀区海淀大街38号5层 | 邮编 | 当前专利权人邮编:100080 |
主IPC国际分类 | H04N21/238 | 所有IPC国际分类 | H04N21/238 ; H04N21/438 ; H04N21/433 ; H04L67/06 |
专利引用数量 | 0 | 专利被引用数量 | 0 |
专利权利要求数量 | 11 | 专利文献类型 | A |
专利代理机构 | 北京超凡宏宇专利代理事务所 | 专利代理人 | 唐正瑜; |
摘要 | 本 申请 提供一种流媒体下载方法、装置、 电子 设备及计算机可读存储介质,涉及计算机的技术领域。流媒体下载方法,包括:基于第一预设 接口 接收各播放器的数据 请求 ;数据请求包括播放器所请求的数据的 访问 地址;根据访问地址将目标流媒体下载服务下载的流媒体数据发送给播放器;其中,目标流媒体下载服务为与访问地址对应的流媒体下载服务。通过目标流媒体下载服务从访问地址下载流媒体数据,使得播放器可以通过向第一预设接口发送数据请求,进而获得流媒体数据。从而在应用提升流媒体播放流畅度的方案时,可以直接 对流 媒体下载服务进行优化,无需针对不同平台、不同播放器分别进行优化,从而降低了流媒体播放流畅度的方案的开发成本和维护成本。 | ||
权利要求 | 1.一种流媒体下载方法,其特征在于,包括: |
||
说明书全文 | 流媒体下载方法、装置、电子设备及计算机可读存储介质技术领域[0001] 本申请涉及计算机的技术领域,具体而言,涉及一种流媒体下载方法、装置、电子设备及计算机可读存储介质。 背景技术[0002] 流媒体技术广泛应用于媒体数据传输,流媒体技术与传统的文件下载不同,流媒体技术无需将整个资源完整下载后再进行播放,而是通过合理的播放策略,在即将播放某一时间点的内容时,提前下载该部分内容并进行解码渲染等处理,从而保证了资源播放的流畅性。 [0003] 目前,业界提出来很多提升流媒体播放流畅度的方案,例如自适应码率等。但是,市场上存在多种不同的播放器,且不同的播放器可能被不同的平台使用。因此,即使采用同一种提升流媒体播放流畅度的方案,也需要针对不同平台设置的不同类型的播放器分别进行优化,使得现有的用于提升流媒体播放流畅度的方案的开发成本和维护成本较大。发明内容 [0004] 本申请提供一种流媒体下载方法、装置、电子设备及计算机可读存储介质,以解决现有的用于提升流媒体播放流畅度的方案的开发成本和维护成本较大的问题。 [0005] 第一方面,本申请提供一种流媒体下载方法,包括:基于第一预设接口接收各播放器的数据请求;所述数据请求包括所述播放器所请求的数据的访问地址;根据所述访问地址将目标流媒体下载服务下载的流媒体数据发送给所述播放器;其中,所述目标流媒体下载服务为与所述访问地址对应的流媒体下载服务。 [0006] 本申请实施例中,通过目标流媒体下载服务预先从访问地址下载流媒体数据,使得播放器可以通过向第一预设接口发送数据请求,进而获得流媒体数据。也即,对于流媒体数据的获取不再由各个播放器来完成,而是由流媒体下载服务来完成,各播放器只需要通过第一预设接口从目标流媒体下载服务处获取流媒体数据即可。这样,在优化流媒体播放流畅度的方案时,可以直接对流媒体下载服务进行优化,无需针对不同平台、不同播放器分别进行优化,从而降低了流媒体播放流畅度的方案的开发成本和维护成本。 [0007] 结合上述第一方面提供的技术方案,在一些可能的实施方式中,根据所述访问地址将目标流媒体下载服务下载的流媒体数据发送给所述播放器,包括:获取与所述访问地址对应的目标流媒体下载服务的地址;将所述目标流媒体下载服务的地址发送给所述播放器;在所述播放器访问所述目标流媒体下载服务的地址的情况下,将所述目标流媒体下载服务下载的流媒体数据发送给所述播放器。 [0008] 本申请实施例中,通过将目标流媒体下载服务的地址发送给播放器,以使播放器通过目标流媒体下载服务的地址从目标流媒体下载服务获取流媒体数据,这就使得播放器无需从访问地址下载流媒体数据。由于播放器不再需要从访问地址下载流媒体数据,因此,在对流媒体下载策略进行更新时,无需考虑播放器的类型以及平台的类型,也即无需针对不同平台、不同播放器分别进行优化,从而降低了流媒体播放流畅度的方案的开发成本和维护成本。 [0009] 结合上述第一方面提供的技术方案,在一些可能的实施方式中,获取与所述访问地址对应的目标流媒体下载服务的地址,包括:查询本地是否存在与所述访问地址对应的所述目标流媒体下载服务;若本地不存在与所述访问地址对应的所述目标流媒体下载服务,在本地建立所述目标流媒体下载服务,得到所述目标流媒体下载服务的地址。 [0010] 本申请实施例中,当本地不存在与访问地址对应的目标流媒体下载服务的情况下,在本地建立目标流媒体下载服务,从而可以使得播放器的任何一个数据请求都能存在与其对应的流媒体下载服务,提高本方案的适用性。 [0011] 结合上述第一方面提供的技术方案,在一些可能的实施方式中,在所述基于第一预设接口接收各播放器的数据请求之前,所述方法还包括:基于第二预设接口接收所述播放器发送的包括访问地址的数据预加载指令;查询本地是否存在与所述访问地址对应的目标流媒体下载服务;若存在与所述访问地址对应的目标流媒体下载服务,基于所述目标流媒体下载服务从所述访问地址下载并存储流媒体数据。 [0012] 本申请实施例中,通过播放器发送的包括访问地址的数据预加载指令,可以基于与该访问地址对应的目标流媒体下载服务从该访问地址下载并存储流媒体数据,从而使得该播放器在需要请求该访问地址对应的流媒体数据时,该访问地址对应的目标流媒体下载数据中已存储有一定数量的流媒体数据,使得该播放器可以快速获取并播放该流媒体数据,降低播放器播放流媒体数据的反应时间。 [0013] 结合上述第一方面提供的技术方案,在一些可能的实施方式中,所述方法还包括:基于第三预设接口接收所述播放器发送的流媒体下载服务删除指令;基于所述流媒体下载服务删除指令,删除所述流媒体下载服务删除指令所指示的流媒体下载服务。 [0014] 本申请实施例中,可以通过向第三预设接口发送流媒体下载服务删除指令,删除该流媒体下载服务删除指令指示的流媒体下载服务,从而降低了本地存储的数据量,减轻了本地存储的压力。 [0015] 第二方面,本申请提供一种流媒体下载装置,包括:接收模块、处理模块,接收模块用于基于预设接口接收各播放器的数据请求;所述数据请求包括所述播放器所请求的数据的访问地址;处理模块用于根据所述访问地址将目标流媒体下载服务下载的流媒体数据发送给所述播放器;其中,所述目标流媒体下载服务为与所述访问地址对应的流媒体下载服务。 [0016] 结合上述第二方面提供的技术方案,在一些可能的实施方式中,所述流媒体下载装置,还包括:至少一个流媒体下载服务,所述流媒体下载服务用于从自身对应的访问地址下载并存储流媒体数据,并响应播放器发送的所述数据请求,向所述播放器传输流媒体数据。 [0017] 结合上述第二方面提供的技术方案,在一些可能的实施方式中,所述流媒体下载服务,包括:下载单元、缓存单元,下载单元用于从自身对应的所述访问地址下载流媒体数据;缓存单元用于将所述下载单元下载的流媒体数据写入预设的缓存区域。 [0018] 结合上述第二方面提供的技术方案,在一些可能的实施方式中,所述缓存区域为环形缓存区,其中,所述缓存单元,具体用于从所述环形缓存区的起始位置,沿预设方向将下载的所述流媒体数据写入所述环形缓存区;所述环形缓存区中的流媒体数据从所述起始位置沿所述预设方向依次发送给播放器。 [0019] 本申请实施例中,由于存储流媒体数据和发送给播放器的流媒体数据都是从初始位置开始,且存储的流媒体数据通常会领先传输给播放器的流媒体数据,因此,两者之间可以设置一定的缓冲区(即环形缓存区),将两者进行隔离。这样使得即使出现网络错误等故障导致流媒体下载服务无法从访问地址获取流媒体数据的情况,播放器仍旧可以播放环形缓存区中存储的内容,不会立即停止播放,为修复故障提供时间。若在播放器将缓冲区内的流媒体数据播放完全之前完成故障修复,流媒体下载服务即可继续从访问地址获取流媒体数据,使得播放器不会出现停止播放播放的情况,从而可以提高播放器播放的流畅度。 [0020] 第三方面,本申请实施例还提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器连接;所述存储器,用于存储程序;所述处理器,用于调用存储于所述存储器中的程序,以执行如上述第一方面实施例和/或结合上述第一方面实施例的任一种可能的实施方式提供的方法。 [0021] 第四方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被计算机运行时,执行如上述第一方面实施例和/或结合上述第一方面实施例的任一种可能的实施方式提供的方法。附图说明 [0022] 为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。 [0023] 图1为本申请实施例示出的第一种流媒体下载方法的流程示意图; [0024] 图2为本申请实施例示出的第二种流媒体下载方法的流程示意图; [0025] 图3为本申请实施例示出的一种流媒体下载装置的结构框图; [0026] 图4为本申请实施例示出的一种环形缓存区的结构示意图; [0027] 图5为本申请实施例示出的一种电子设备的结构框图。 具体实施方式[0028] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。 [0029] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中诸如“第一”、“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。 [0030] 下面将结合附图对本申请的技术方案进行详细地描述。 [0031] 请参阅图1,图1为本申请实施例示出的一种流媒体下载方法的流程示意图,下面将结合图1对其包含的步骤进行说明。 [0032] S100:基于第一预设接口接收各播放器的数据请求。 [0033] 其中,数据请求包括播放器所请求的数据的访问地址。 [0034] 例如,当播放器需要获取访问地址A的流媒体数据时,该播放器向第一预设接口发送包括访问地址A的数据请求。 [0036] 可选的,执行该流媒体下载方法的装置可以包括统一接口适配层,该统一接口适配层包括上述的第一预设接口。进而,播放器可以通过SDK调用统一接口适配层实现将包括访问地址的数据请求发送给执行该流媒体下载方法的装置。 [0037] 为了播放器播放流媒体数据的反应时间,一种实施方式下,在基于第一预设接口接收各播放器的数据请求之前,还可以基于第二预设接口接收播放器发送的包括访问地址的数据预加载指令;然后查询本地是否存在与访问地址对应的目标流媒体下载服务;若存在与访问地址对应的目标流媒体下载服务,基于目标流媒体下载服务从访问地址下载并存储流媒体数据。 [0038] 若不存在与访问地址对应的目标流媒体下载服务,在本地建立该目标流媒体下载服务,并基于该目标流媒体下载服务从访问地址下载并存储流媒体数据。 [0039] 可选的,若执行该流媒体下载方法的装置可以包括统一接口适配层,该统一接口适配层还可以包括上述的第二预设接口。 [0040] 每个流媒体下载服务仅对应一个访问地址,一种可选实施方式中,流媒体下载服务和访问地址之间的对应关系可以记录在预设的对应关系表中,在需要确定访问地址对应的流媒体服务时,直接查询该对应关系表即可。 [0041] 又一种可选实施方式中,也可以利用访问地址对流媒体下载服务进行标记,在需要确定访问地址对应的流媒体服务时,找到被该访问地址标记的流媒体下载服务即可。 [0042] 又一种可选实施方式中,可以是将访问地址作为流媒体下载服务的名称,在需要确定访问地址对应的流媒体服务时,找到名称为该访问地址标记的流媒体下载服务即可。 [0043] 其中,目标流媒体下载服务可以将流媒体数据存储在自身的缓存区域中,流媒体下载服务的缓存区域是预先建立好的。 [0044] 通过播放器发送的包括访问地址的数据预加载指令,可以基于与该访问地址对应的目标流媒体下载服务从该访问地址下载并存储流媒体数据,从而使得该播放器在需要请求该访问地址对应的流媒体数据时,该访问地址对应的目标流媒体下载数据中已存储有一定数量的流媒体数据,使得该播放器可以快速获取并播放该流媒体数据,降低播放器播放流媒体数据的反应时间。 [0045] 在实际应用中,由于访问地址的数量极大,因此,可能出现本地不存在与访问地址对应的流媒体下载服务的情况。此时,获取与该访问地址对应的目标流媒体下载服务的地址的具体过程可以是:首先查询本地是否存在与访问地址对应的目标流媒体下载服务。若本地存在与访问地址对应的目标流媒体下载服务,直接获取该目标流媒体下载服务的地址。若本地不存在与访问地址对应的目标流媒体下载服务,在本地建立目标流媒体下载服务,得到目标流媒体下载服务的地址。从而保证播放器的任何一个数据请求都存在与其对应的流媒体下载服务。 [0046] 其中,在本地建立目标流媒体下载服务的方式可以是:基于预设的流媒体下载服务建立脚本和访问地址直接生成,例如,在需要建立从第一访问地址下载流媒体数据的流媒体下载服务时,预设的流媒体下载服务建立脚本基于该第一访问地址,直接建立对应的流媒体下载服务。或者,也可以是预先设置有流媒体下载服务模板,在得到访问地址后,基于访问地址对流媒体下载服务模板中的访问地址信息进行更新,即可得到该访问地址对应的流媒体下载服务。此处举例仅为便于理解,在本地建立目标流媒体下载服务的方式除上述举例的两种方式外,还可以是其他任何能在本地建立目标流媒体下载服务的方式。 [0047] 一种可选实施方式中,可以设置目标流媒体下载服务一直从访问地址下载并存储流媒体数据。 [0048] 另一种可选实施方式中,也可以设置目标流媒体下载服务从访问地址下载并存储的流媒体数据的数据量达到预设阈值后,停止继续下载。其中,预设阈值可以根据实际情况进行设置,此处不对其具体数量进行限制。 [0049] 一种实施方式下,为了保证播放器会向第一预设接口发送数据请求,在基于第一预设接口接收各播放器的数据请求之前,还可以对播放器的流媒体下载策略进行更改,以使播放器在需要获取流媒体数据时,向第一预设接口发送数据请求。 [0050] 其中,更改播放器的流媒体下载策略的具体实现原理已为本领域技术人员所熟知,为简要描述,此处不再赘述。 [0051] S200:根据访问地址将目标流媒体下载服务下载的流媒体数据发送给播放器。 [0052] 目标流媒体下载服务下载的流媒体数据可以是在接收到播放器发送的包括该访问地址的数据请求后,实时下载的。或者,也可以是在接收到播放器发送的包括该访问地址的数据请求之前,目标流媒体下载服务基于播放器发送的数据预加载指令下载并存储的。 [0053] 其中,目标流媒体下载服务为与访问地址对应的流媒体下载服务。 [0054] 为了便于理解,以存在流媒体下载服务A、流媒体下载服务B、流媒体下载服务C,且流媒体下载服务A与访问地址A对应,且流媒体下载服务B与访问地址B对应,且流媒体下载服务C与访问地址C对应为例进行说明。当第一预设接口接收的播放器的数据请求中包括访问地址A时,则确定目标流媒体下载服务为流媒体下载服务A,将流媒体下载服务A下载的流媒体数据发送给播放器。此处举例仅为便于理解,不应作为对本申请的限制。 [0055] 可以理解的是,由于流媒体下载服务与访问地址一一对应,因此,可能存在多个播放器发送的数据请求包括同一访问地址的情况,此时,可以将该访问地址对应的流媒体下载服务下载的流媒体数据分别发送给不同的播放器。 [0056] 根据访问地址将目标流媒体下载服务下载的流媒体数据发送给播放器可以有以下两种实施方式。 [0057] 第一种实施方式下,根据访问地址将目标流媒体下载服务下载的流媒体数据发送给播放器的具体过程可以是,首先确定与该访问地址对应的目标流媒体下载服务,然后将目标流媒体下载服务下载的流媒体数据通过数据传输接口,发送给播放器。 [0058] 第二种实施方式下,根据访问地址将目标流媒体下载服务下载的流媒体数据发送给播放器的具体过程可以是,首先获取与访问地址对应的目标流媒体下载服务的地址,然后将目标流媒体下载服务的地址发送给播放器。之后,在播放器访问目标流媒体下载服务的地址的情况下,将目标流媒体下载服务下载的流媒体数据发送给播放器。 [0059] 通过将目标流媒体下载服务的地址发送给播放器,以使播放器通过目标流媒体下载服务的地址从目标流媒体下载服务获取流媒体数据,这就使得播放器无需从访问地址下载流媒体数据。由于播放器不再需要从访问地址下载流媒体数据,因此,在对流媒体下载策略进行更新时,无需考虑播放器的类型以及平台的类型,也即无需针对不同平台、不同播放器分别进行优化,从而降低了流媒体播放流畅度的方案的开发成本和维护成本。 [0060] 为了便于理解,以存在流媒体下载服务A、流媒体下载服务B、流媒体下载服务C,且流媒体下载服务A与访问地址A对应,且流媒体下载服务B与访问地址B对应,且流媒体下载服务C与访问地址C对应为例进行说明。当第一预设接口接收的播放器的数据请求中包括访问地址A时,则确定目标流媒体下载服务为流媒体下载服务A。将流媒体下载服务A的地址发送给播放器。播放器在接收到流媒体下载服务A的地址后,可以访问该流媒体下载服务A的地址,以从流媒体下载服务A获取流媒体数据。此处举例仅为便于理解,不应作为对本申请的限制。 [0061] 为了防止因存在的流媒体下载服务的数量过多,导致本地存储压力过大,一种实施方式下,该流媒体下载方法还可以包括:基于第三预设接口接收播放器发送的流媒体下载服务删除指令;然后基于流媒体下载服务删除指令,删除流媒体下载服务删除指令所指示的流媒体下载服务。 [0062] 其中,流媒体下载服务删除指令中可以包括唯一表征一个流媒体下载服务的标识信息,在接收到流媒体下载服务删除指令后,根据该标识信息找到待删除的流媒体下载服务。 [0063] 唯一表征一个流媒体下载服务的标识信息可以是访问地址、流媒体下载服务的地址等,此处不对其进行限制。 [0064] 一种实施方式下,当出现网络错误等故障,导致流媒体下载服务从访问地址下载流媒体数据中断时,还可以基于流媒体下载服务,从下载中断的位置继续从访问地址下载流媒体数据。也即,流媒体下载服务具备断点续传的功能。 [0065] 其中,断点续传功能的具体实现方式及原理已为本领域技术人员所熟知,未简要描述,此处不再赘述。 [0066] 一种实施方式下,还可以基于流媒体下载服务选择流媒体下载服务与访问地址之间的数据传输通道。也即,流媒体下载服务具备路由选择的功能。 [0067] 其中,路由选择功能的具体实现方式及原理已为本领域技术人员所熟知,未简要描述,此处不再赘述。 [0068] 可以理解,在本申请实施例中,可以通过在电子设备中配置专门的软件程序来实现上述方法。第一预设接口、第二预设接口和第三预设接口是实现该专门的软件程序与各播放器之间交互的接口,可以采用但不限于应用程序接口来实现。 [0069] 还可以理解,实现上述方法的软件程序和播放器可以设置于同一电子设备中,但是也可以设置于不同电子设备中。当设置于不同电子设备中时,不同电子设备之间可以相互连接,以配合执行本申请实施例所提供的方法。 [0070] 为了便于理解上述的流媒体下载方法,请参阅图2,图2为本申请实施例示出的一种流媒体下载方法。需要注意的是,图2所示的流媒体下载方法仅为本申请提供的流媒体下载方法的一种实施方式,不应将其作为对本申请的限制。 [0071] 如图2所示,首先基于第一预设接口接收各播放器的数据请求,该数据请求包括播放器所请求的数据的访问地址。然后查询本地是否存在与访问地址对应的目标流媒体下载服务。 [0072] 若本地不存在与访问地址对应的目标流媒体下载服务,在本地建立目标流媒体下载服务,得到目标流媒体下载服务的地址。若本地存在与访问地址对应的目标流媒体下载服务,获取目标流媒体下载服务的地址。 [0073] 之后将目标流媒体下载服务的地址发送给播放器。最后在播放器访问目标流媒体下载服务的地址的情况下,将目标流媒体下载服务下载的流媒体数据发送给播放器。 [0074] 图2所示的各个步骤的具体实现方式及原理在前文以叙述清楚,为简要描述,此处不再赘述。 [0075] 基于同样的发明构思,本申请还提供一种流媒体下载装置,如图3所示,流媒体下载装置100包括接收模块110和处理模块120。 [0076] 接收模块110,用于基于预设接口接收各播放器的数据请求;数据请求包括播放器所请求的数据的访问地址。 [0077] 处理模块120,用于根据访问地址将目标流媒体下载服务下载的流媒体数据发送给播放器;其中,目标流媒体下载服务为与访问地址对应的流媒体下载服务。 [0078] 处理模块120,具体用于获取与访问地址对应的目标流媒体下载服务的地址;将目标流媒体下载服务的地址发送给播放器;在播放器访问目标流媒体下载服务的地址的情况下,将目标流媒体下载服务下载的流媒体数据发送给播放器。 [0079] 处理模块120,具体用于查询本地是否存在与访问地址对应的目标流媒体下载服务;若本地不存在与访问地址对应的目标流媒体下载服务,在本地建立目标流媒体下载服务,得到目标流媒体下载服务的地址。 [0080] 在基于第一预设接口接收各播放器的数据请求之前,接收模块110,还用于基于第二预设接口接收播放器发送的包括访问地址的数据预加载指令。处理模块120,还用于查询本地是否存在与访问地址对应的目标流媒体下载服务;若存在与访问地址对应的目标流媒体下载服务,基于目标流媒体下载服务从访问地址下载并存储流媒体数据。 [0081] 接收模块110,还用于基于第三预设接口接收播放器发送的流媒体下载服务删除指令。处理模块120,还用于基于流媒体下载服务删除指令,删除流媒体下载服务删除指令所指示的流媒体下载服务。 [0082] 其中,接收模块110中可以设置有接口适配层,接口适配层用于管理上述的第一预设接口、第二预设接口、第三预设接口。 [0084] 一种实施方式下,流媒体下载装置100还可以包括:至少一个流媒体下载服务。 [0085] 流媒体下载服务用于从自身对应的访问地址下载并存储流媒体数据,并响应播放器发送的数据请求,向播放器传输流媒体数据。 [0086] 流媒体下载服务可以包括下载单元和缓存单元。 [0087] 下载单元,用于从自身对应的访问地址下载流媒体数据。 [0088] 缓存单元,用于将下载单元下载的流媒体数据写入预设的缓存区域。 [0089] 一种实施方式下,缓存区域为环形缓存区,其中,缓存单元,具体用于从环形缓存区的起始位置,沿预设方向将下载的流媒体数据写入环形缓存区;环形缓存区中的流媒体数据从起始位置沿预设方向依次发送给播放器。 [0090] 其中,环形缓存区的示意图如图4所示,将流媒体数据写入环形缓存区的方向,与环形缓存区中存储的流媒体数据消费(即将流媒体数据发送给播放器)的方向相同。由于存储流媒体数据和发送给播放器的流媒体数据都是从初始位置开始,且存储的流媒体数据通常会领先传输给播放器的流媒体数据,因此,两者之间会存在一定的缓冲区,将两者进行隔离。 [0091] 在实际应用时,即使出现网络错误等故障导致流媒体下载服务无法从访问地址获取流媒体数据时,播放器仍旧可以播放环形缓存区中存储的内容,不会立即停止播放,为修复故障提供时间。若在播放器将缓冲区内的流媒体数据播放完全之前完成故障修复(例如进行断点续传等操作),流媒体下载服务即可继续从访问地址获取流媒体数据,使得播放器不会出现停止播放播放的情况,从而可以提高播放器播放的流畅度。 [0092] 可选的,在环形缓存区中存储的数据被消费(即将流媒体数据发送给播放器)后,可以将消费过的流媒体数据删除,以节约存储空间。或者,也可以是在环形缓存区中缓存有数据的区域大于预设区域阈值后,将环形缓存区中下载时间最早的流媒体数据删除,直至环形缓存区中缓存有数据的区域小于预设区域阈值。此处举例仅为便于理解,不应作为对本申请的限制。 [0093] 本申请实施例所提供的流媒体下载装置100,其实现原理及产生的技术效果和前述流媒体下载方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述流媒体下载方法实施例中相应内容。 [0094] 请参阅图5,其为本申请实施例提供的一种电子设备200。所述电子设备200包括:存储器220、处理器240。 [0095] 所述存储器220、处理器240之间电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线230或信号线实现电性连接。其中,存储器220用于存储计算机程序,如存储有图3中所示的软件功能模块,即流媒体下载装置100。其中,流媒体下载装置100包括至少一个可以软件或固件(firmware)的形式存储于所述存储器220中或固化在所述电子设备200的操作系统(operating system,OS)中的软件功能模块。所述处理器240,用于执行存储器220中存储的程序,例如流媒体下载装置100包括的软件功能模块或计算机程序。此时,处理器240,用于基于第一预设接口接收各播放器的数据请求;所述数据请求包括所述播放器所请求的数据的访问地址;根据所述访问地址将目标流媒体下载服务下载的流媒体数据发送给所述播放器;其中,所述目标流媒体下载服务为与所述访问地址对应的流媒体下载服务。 [0096] 该电子设备还可以包括收发器210,通过收发器210接收或发送数据。 [0097] 其中,存储器220可以是但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read‑Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read‑Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read‑Only Memory,EEPROM)等。 [0098] 处理器240可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。处理器240调用存储于存储器220中的程序可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。 [0099] 其中,上述的电子设备200,包括但不限于个人电脑、服务器等。 [0100] 本申请实施例还提供了一种计算机可读存储介质(以下简称存储介质),该存储介质上存储有计算机程序,该计算机程序被计算机如计算机运行时,执行上述所示的流媒体下载方法。该计算机可读存储介质可以是但不限于:U盘、移动硬盘、只读存储器(Read‑Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。 [0101] 以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。 |