一种进程间传递流数据的方法和装置与流程

文档序号:11157618阅读:214来源:国知局
一种进程间传递流数据的方法和装置与制造工艺

本发明涉及流数据处理技术领域,具体涉及一种进程间传递流数据的方法以及一种进程间传递流数据的装置。



背景技术:

流数据为可以采用流式传输的方式在网络上传输的数据。流数据在进程间传递时,负责播放流数据的进程通过给负责获取流数据的进程发送获取指令,以使负责获取流数据的进程在获取到流数据后,将流数据反馈回来。

实际应用中,负责获取流数据的进程通过定位指针可以定位到负责播放流数据的进程。如果负责播放流数据的进程被关闭,而负责获取流数据的进程通过定位指针定位时,此时由于定位指针已经不合法,内存中相应的位置已经不是分配给负责播放流数据的进程,负责获取流数据的进程如果将流数据根据定位指针反馈就会将流数据写入到错误的内存中,导致访问非法内存位置,甚至程序崩溃。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种进程间传递流数据的方法和相应的装置。

依据本发明的一个方面,提供了一种进程间传递流数据的方法,包括:

接收流播放进程传递至流获取进程的流获取指示,所述流获取指示携带针对所述流播放进程的定位指针,所述定位指针携带针对所述流播放进程的进程状态标识,在监控到所述流播放进程结束时,所述定位指针携带的进程状态标识的值变更为指示进程关闭;

获取所述流获取指示对应的目标流数据;

判定所述定位指针携带的进程状态标识的值并非指示进程关闭;

按照所述定位指针定位所述流播放进程,并将所述目标流数据传递至流播放进程,以供所述流播放进程播放所述目标流数据。

可选地,所述方法还包括:

若判定所述定位指针携带的进程状态标识的值指示进程关闭,则不执行按照所述定位指针定位所述流播放进程以及将所述目标流数据传递至流播放进程的操作。

可选地,所述进程状态标识在所述流播放进程创建时,对所述进程状态标识赋予第一数值,在所述流播放进程结束时,通过运算操作变更为第二数值;

所述判定所述定位指针携带的进程状态标识的值并非指示进程关闭包括:

识别所述定位指针携带的进程状态标识的值不是第二数值,则判定所述进程状态标识并非指示进程关闭。

可选地,所述判定所述定位指针携带的进程状态标识的值并非指示进程关闭的步骤,在每次向流播放进程传递目标流数据的数据包时执行;

在执行所述判定所述定位指针携带的进程状态标识的值并非指示进程关闭之后,通过运算操作将所述进程状态标识变更为第三数值,在本次传输完数据包之后变更回第一数值;

所述判定所述定位指针携带的进程状态标识的值并非指示进程关闭包括:

判定所述定位指针携带的进程状态标识的值为第一数值或第三数值。

可选地,所述流获取指示携带所述流播放进程针对流获取进程创建的回调函数,所述将所述目标流数据传递至流播放进程包括:

执行所述回调函数,由所述回调函数将所述目标流数据传递至流播放进程。

可选地,所述获取所述流获取指示对应的目标流数据包括:

与存储目标流数据的传输节点建立连接;

按照所述定位指针定位所述流播放进程,向所述流播放进程发送连接建立的通知;

从所述传输节点获取目标流数据。

可选地,所述获取所述流获取指示对应的目标流数据包括:

获取所述流获取指示对应的目标流数据的云端存储地址;

所述将所述目标流数据传递至流播放进程包括:

根据所述云端存储地址下载目标流数据至本地,并将本地存储地址传递至流播放进程,以供所述流播放进程根据所述本地存储地址获取并播放目标流数据。

依据本发明的另一个方面,提供了一种进程间传递流数据的方法,包括:

根据用户播放目标流数据的请求创建流播放进程,并创建针对定位流播放进程的定位指针,所述流播放进程通过创建流获取进程获取目标流数据,所述流获取进程通过定位指针定位流播放进程;

对所述定位指针添加指示进程状态标识,并为所述进程状态标识赋予指示进程运行的初始值;

在播放目标流数据的过程中,若监控到对流播放进程的结束操作,则将所述进程状态标识的值变更为指示进程关闭,以供流获取进程在判定进程状态标识并非指示进程关闭时,将目标流数据传递至流播放进程。

可选地,所述监控到对流播放进程的结束操作包括:

接收用户在流数据客户端上从目标流数据至其他流数据的播放切换操作,或,接收到用户对目标流数据的播放页面的关闭操作,所述播放切换操作包括在目标流数据的播放界面上按照设定方向的滑动操作。

可选地,在所述监控到对流播放进程的结束操作之后,所述方法还包括:

结束所述流播放进程。

可选地,所述方法还包括:

通知内存释放所述流播放进程的定位指针所占用的存储空间。

可选地,在流获取进程在判定进程状态标识并非指示进程关闭之后,所述方法还包括:

通过运算操作将所述进程状态标识变更为第三数值,以由流获取进程在每次向流播放进程传递流数据时,根据进程状态标识的值为第一数值或第三数值判定并非指示进程关闭;

在流获取进程本次传输完数据包之后,所述方法还包括:

将进程状态标识的值变更回第一数值。

依据本发明的另一个方面,提供了一种进程间传递流数据的装置,包括:

指示接收模块,用于接收流播放进程传递至流获取进程的流获取指示,所述流获取指示携带针对所述流播放进程的定位指针,所述定位指针携带针对所述流播放进程的进程状态标识,在监控到所述流播放进程结束时,所述定位指针携带的进程状态标识的值变更为指示进程关闭;

流数据获取模块,用于获取所述流获取指示对应的目标流数据;

状态判定模块,用于判定所述定位指针携带的进程状态标识的值并非指示进程关闭;

流数据传递模块,用于按照所述定位指针定位所述流播放进程,并将所述目标流数据传递至流播放进程,以供所述流播放进程播放所述目标流数据。

可选地,所述装置还包括:

操作不执行模块,用于若判定所述定位指针携带的进程状态标识的值指示进程关闭,则不执行按照所述定位指针定位所述流播放进程以及将所述目标流数据传递至流播放进程的操作。

可选地,所述进程状态标识在所述流播放进程创建时,对所述进程状态标识赋予第一数值,在所述流播放进程结束时,通过运算操作变更为第二数值;

所述状态判定模块包括:

第二数值识别子模块,用于识别所述定位指针携带的进程状态标识的值不是第二数值,则判定所述进程状态标识并非指示进程关闭。

可选地,所述判定所述定位指针携带的进程状态标识的值并非指示进程关闭的步骤,在每次向流播放进程传递目标流数据的数据包时执行;

第三变更模块,用于在执行所述判定所述定位指针携带的进程状态标识的值并非指示进程关闭之后,通过运算操作将所述进程状态标识变更为第三数值,在本次传输完数据包之后变更回第一数值;

所述状态判定模块包括:

值判定子模块,用于判定所述定位指针携带的进程状态标识的值为第一数值或第三数值。

可选地,所述流获取指示携带所述流播放进程针对流获取进程创建的回调函数,所述流数据传递模块包括:

回调执行子模块,用于执行所述回调函数,由所述回调函数将所述目标流数据传递至流播放进程。

可选地,所述流数据获取模块包括:

连接建立子模块,用于与存储目标流数据的传输节点建立连接;

通知子模块,用于按照所述定位指针定位所述流播放进程,向所述流播放进程发送连接建立的通知;

流数据获取子模块,用于从所述传输节点获取目标流数据。

可选地,所述流数据获取模块包括:

云端地址获取子模块,用于获取所述流获取指示对应的目标流数据的云端存储地址;

所述流数据传递模块包括:

地址传递子模块,用于根据所述云端存储地址下载目标流数据至本地,并将本地存储地址传递至流播放进程,以供所述流播放进程根据所述本地存储地址获取并播放目标流数据。

依据本发明的另一个方面,提供了一种进程间传递流数据的装置,包括:

进程创建模块,用于根据用户播放目标流数据的请求创建流播放进程,并创建针对定位流播放进程的定位指针,所述流播放进程通过创建流获取进程获取目标流数据,所述流获取进程通过定位指针定位流播放进程;

状态标识添加模块,用于对所述定位指针添加指示进程状态标识,并为所述进程状态标识赋予指示进程运行的初始值;

状态标识变更模块,用于在播放目标流数据的过程中,若监控到对流播放进程的结束操作,则将所述进程状态标识的值变更为指示进程关闭,以供流获取进程在判定进程状态标识并非指示进程关闭时,将目标流数据传递至流播放进程。

可选地,所述状态标识变更模块包括:

操作接收子模块,用于接收用户在流数据客户端上从目标流数据至其他流数据的播放切换操作,或,接收到用户对目标流数据的播放页面的关闭操作,所述播放切换操作包括在目标流数据的播放界面上按照设定方向的滑动操作。

可选地,所述装置还包括:

进程结束模块,用于在所述监控到对流播放进程的结束操作之后,结束所述流播放进程。

可选地,所述装置还包括:

空间释放模块,用于通知内存释放所述流播放进程的定位指针所占用的存储空间。

可选地,所述装置还包括:

第三变更操作模块,用于在流获取进程在判定进程状态标识并非指示进程关闭之后,通过运算操作将所述进程状态标识变更为第三数值,以由流获取进程在每次向流播放进程传递流数据时,根据进程状态标识的值为第一数值或第三数值判定并非指示进程关闭;

所述装置还包括:

第一变更模块,用于在流获取进程本次传输完数据包之后,将进程状态标识的值变更回第一数值。

根据本发明的一种进程间传递流数据的方法的装置,通过接收流播放进程传递至流获取进程的流获取指示,获取所述流获取指示对应的目标流数据,判定所述定位指针携带的进程状态标识的值并非指示进程关闭,按照所述定位指针定位所述流播放进程,并将所述目标流数据传递至流播放进程,以供所述流播放进程播放所述目标流数据,使得可以在目标流数据传递给流播放进程前,通过进程状态标识的值判定流播放进程未关闭,避免了流获取进程在不知道流播放进程已关闭的情况下将流数据反馈给定位指针定位的内存中的位置,避免了定位指针不合法或定位指针已被释放的问题,解决了访问非法内存位置,程序崩溃的问题。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明实施例一的一种进程间传递流数据的方法的步骤流程示意图;

图2示出了根据本发明实施例二的一种进程间传递流数据的方法的步骤流程示意图;

图3示出了根据本发明实施例三的一种进程间传递流数据的方法的步骤流程示意图;

图4示出了根据本发明实施例四的一种进程间传递流数据的装置的结构框图;

图5示出了根据本发明实施例五的一种进程间传递流数据的装置的结构框图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

参照图1,示出了根据本发明实施例一的一种进程间传递流数据的方法的步骤流程示意图,具体可以包括如下步骤:

步骤101,接收流播放进程传递至流获取进程的流获取指示。

在本发明实施例中,流播放进程为用于播放视频流的进程,具体负责流数据的播放展示、刷新页面等。流获取进程为用于获取视频流的进程,具体负责建立连接,接收流数据等。流获取指示为针对流数据的获取指示,流播放进程传递给流获取进程,流获取进程接收流获取指示。其中,流数据为可以采用流式传输的方式在网络上传输的数据。

流获取指示携带针对所述流播放进程的定位指针,所述定位指针携带针对所述流播放进程的进程状态标识,在监控到所述流播放进程结束时,所述定位指针携带的进程状态标识的值变更为指示进程关闭。其中,定位指针是指可以定位进程运行位置的内存地址,流获取指示携带针对流播放进程的定位指针。进程状态标识为可以指示进程是否关闭的标识,定位指针携带对流播放进程的进程状态标识,在监控到流播放进程结束时,定位指针携带的进程状态标识的值变更为指示进程关闭,例如进程状态标识的值为零时,指示进程关闭。

步骤102,获取所述流获取指示对应的目标流数据。

在本发明实施例中,流获取指示中包含有对应的目标流数据的标识,获取流获取指示对应的目标流数据,具体为根据流获取指示,与目标流数据所在节点建立连接,将目标流数据获取到流获取进程。

步骤103,判定所述定位指针携带的进程状态标识的值并非指示进程关闭。

在本发明实施例中,对定位指针携带的进程状态标识的值进行判断,根据取值判断是否指示进程关闭,如果定位指针携带的进程状态标识的值为特定值,而且该特定值指示进程并未关闭。具体特征值可以任意适用的值,本实施例对此不做限制。如果定位指针携带的进程状态标识的值为特定值,则判定定位指针携带的进程状态的值并非指示进程关闭。

步骤104,按照所述定位指针定位所述流播放进程,并将所述目标流数据传递至流播放进程,以供所述流播放进程播放所述目标流数据。

在本发明实施例中,按照定位指针可以找到流播放进程的运行位置,具体为内存中地址,也就是可以定位到流播放进程,流获取进程将目标流数据传递至流播放进程,以供流播放进程播放目标流数据。

综上所述,依据本发明实施例,通过接收流播放进程传递至流获取进程的流获取指示,获取所述流获取指示对应的目标流数据,判定所述定位指针携带的进程状态标识的值并非指示进程关闭,按照所述定位指针定位所述流播放进程,并将所述目标流数据传递至流播放进程,以供所述流播放进程播放所述目标流数据,使得可以在目标流数据传递给流播放进程前,通过进程状态标识的值判定流播放进程未关闭,避免了流获取进程在不知道流播放进程已关闭的情况下将流数据反馈给定位指针定位的内存中的位置,避免了定位指针不合法或定位指针已被释放的问题,解决了访问非法内存位置,程序崩溃的问题。

在本发明实施例中,优选地,还可以包括步骤:若判定所述定位指针携带的进程状态标识的值指示进程关闭,则不执行按照所述定位指针定位所述流播放进程以及将所述目标流数据传递至流播放进程的操作。

在流获取进程反馈流数据前,先读取定位指针携带的进程状态标识的值,如果进程状态标识的值对应的进程状态为进程关闭,则流获取进程不执行按照定位指针定位所述流播放进程以及将目标流数据传递至流播放进程的操作。

在本发明实施例中,优选地,所述获取所述流获取指示对应的目标流数据的一种实现方式为:获取所述流获取指示对应的目标流数据的云端存储地址;所述将所述目标流数据传递至流播放进程的一种实现方式为:根据所述云端存储地址下载目标流数据至本地,并将本地存储地址传递至流播放进程,以供所述流播放进程根据所述本地存储地址获取并播放目标流数据。

云端存储地址为流数据来源的云端服务器的地址,流获取进程可以用该地址与远程服务器建立连接传输流数据。流获取进程从流获取指示中获取目标流数据的云端存储地址。本地存储地址为流数据下载到本地后在内存中存储的位置信息。流获取进程根据云端存储地址与云端建立连接,传输流数据,将目标流数据下载到本地,将本地存储地址传递给流播放进程。流播放进程根据本地存储地址,从内存中获取目标流数据,并进行播放。

在本发明实施例中,优选地,所述判定所述定位指针携带的进程状态标识的值并非指示进程关闭的步骤,在每次向流播放进程传递目标流数据的数据包时执行;在执行所述判定所述定位指针携带的进程状态标识的值并非指示进程关闭之后,通过运算操作将所述进程状态标识变更为第三数值,在本次传输完数据包之后变更回第一数值;所述判定所述定位指针携带的进程状态标识的值并非指示进程关闭可以包括步骤:判定所述定位指针携带的进程状态标识的值为第一数值或第三数值。

在每次向流播放进程传递目标流数据的数据包时,都要判断定位指针携带的进程状态标识的值是否指示进程关闭,在流获取进程判断所述进程状态标识的值并非指示进程关闭后,马上通过运算操作将进程状态标识变更为第三数值,然后在本次传输完,也就是该数据包传输完毕之后,将进程状态标识变更回第一数值。

判定定位指针携带的进程状态标识的值为第一数值或第三数值,则判定定位指针携带的进程状态标识的值并非指示进程关闭。

如此在流获取进程判断所述进程状态标识的值并非指示进程关闭后,将目标流数据传递至流播放进程的过程中,流播放进程被执行了关闭操作,上述的将进程状态标识变更为第三数值,可以使得流播放进程被执行关闭操作时不会释放对应的内存,避免了出现流数据反馈给定位指针定位的内存中的位置,避免了定位指针不合法或定位指针已被释放的问题,解决了访问非法内存位置,程序崩溃的问题。

参照图2,示出了根据本发明实施例二的一种进程间传递流数据的方法的步骤流程示意图,具体可以包括如下步骤:

步骤201,接收流播放进程传递至流获取进程的流获取指示。

在本发明实施例中,具体方式与其他实施例相同,不作赘述。

步骤202,与存储目标流数据的传输节点建立连接。

在本发明实施例中,传输节点为可以用于接收、存储、分发流数据的服务器,存储目标流数据的传输节点为目标流数据所在的传输节点。具体可以从流获取指示中获取存储目标流数据的传输节点的地址。

流获取进程通过从流获取指示中获取存储目标流数据的传输节点的地址,与传输节点建立连接。

步骤203,按照所述定位指针定位所述流播放进程,向所述流播放进程发送连接建立的通知。

在本发明实施例中,按照定位指针可以找到流播放进程的运行位置,具体为内存中地址,也就是可以定位到流播放进程,然后向流播放进程发送连接建立的通知。具体而言,在按照定位指针定位所述流播放进程时,先识别定位指针携带的进程状态标识的值是不是第二数值,如果不是第二数值,则判定进程状态标识并非指示进程关闭,则将连接建立的通知发送给流播放进程,如果是第二数值,则判定进程状态标识指示进程关闭,则不将连接建立的通知发送给流播放进程。

步骤204,从所述传输节点获取目标流数据。

在本发明实施例中,流获取进程与传输节点建立连接后,流数据从传输节点传输到流获取进程,具体可以是流获取进程为目标流数据获取一个本地内存中的存储位置,并将目标流数据存储到该地址对应内存中。

步骤205,识别所述定位指针携带的进程状态标识的值不是第二数值,则判定所述进程状态标识并非指示进程关闭。

在本发明实施例中,进程状态标识在流播放进程创建时,对进程状态标识赋予第一数值,第一数值指示流播放进程处于工作状态,在流播放进程结束时,通过运算操作变更为第二数值,第二数值指示流播放进程关闭。

流获取进程访问定位指针对应的进程状态标识的值,识别到进程状态标识的值不是第二数值,则判定进程状态标识并非指示进程关闭。

步骤206,按照所述定位指针定位所述流播放进程,并将所述目标流数据传递至流播放进程,以供所述流播放进程播放所述目标流数据。

在本发明实施例中,若流播放进程未关闭,流获取进程按照定位指针定位流播放进程的方式与其他实施例相同,不作赘述。并将目标流数据传递至流播放进程,以供流播放进程播放目标流数据。

在本发明实施例中,优选地,所述流获取指示携带所述流播放进程针对流获取进程创建的回调函数,所述将所述目标流数据传递至流播放进程的一种实现方式为:执行所述回调函数,由所述回调函数将所述目标流数据传递至流播放进程。

流播放进程针对流获取进程创建的回调函数为流播放进程创建的,以供相应流获取进程通过回调函数与流播放进程传递消息。具体为流获取进程将消息通过回调函数传递至流播放进程。流获取进程执行回调函数,由回调函数将目标流数据传递至流播放进程。

综上所述,依据本发明实施例,通过接收流播放进程传递至流获取进程的流获取指示,与存储目标流数据的传输节点建立连接,按照所述定位指针定位所述流播放进程,向所述流播放进程发送连接建立的通知,从所述传输节点获取目标流数据,识别所述定位指针携带的进程状态标识的值不是第二数值,则判定所述进程状态标识并非指示进程关闭,按照所述定位指针定位所述流播放进程,并将所述目标流数据传递至流播放进程,以供所述流播放进程播放所述目标流数据,使得可以在目标流数据传递给流播放进程前,通过进程状态标识的值判定流播放进程未关闭,避免了流获取进程在不知道流播放进程已关闭的情况下将流数据反馈给定位指针定位的内存中的位置,避免了定位指针不合法或定位指针已被释放的问题,解决了访问非法内存位置,程序崩溃的问题。

参照图3,示出了根据本发明实施例三的一种进程间传递流数据的方法的步骤流程示意图,具体可以包括如下步骤:

步骤301,根据用户播放目标流数据的请求创建流播放进程,并创建针对定位流播放进程的定位指针。

在本发明实施例中,流播放进程通过创建流获取进程获取目标流数据,所述流获取进程通过定位指针定位流播放进程,主进程接收到用户播放目标流数据的请求,根据请求,创建流播放进程,并创建针对定位流播放进程的定位指针。

步骤302,对所述定位指针添加指示进程状态标识,并为所述进程状态标识赋予指示进程运行的初始值。

在本发明实施例中,创建流播放进程时,对定位指针添加指示进程状态标识,并且为进程状态标识赋予指示进程运行的初始值。

步骤303,在播放目标流数据的过程中,若监控到对流播放进程的结束操作,则将所述进程状态标识的值变更为指示进程关闭,以供流获取进程在判定进程状态标识并非指示进程关闭时,将目标流数据传递至流播放进程。

在本发明实施例中,在播放目标流数据的过程中,如果监控到流播放进程的结束操作,则将进程状态标识的值变更为指示进程关闭。流获取进程在判定进程状态标识并非指示进程关闭时,将目标流数据传递至流播放进程,相反如果判定进程状态标识指示进程关闭时,不执行将目标流数据传递至流播放进程的操作。

综上所述,依据本发明实施例,通过根据用户播放目标流数据的请求创建流播放进程,并创建针对定位流播放进程的定位指针,对所述定位指针添加指示进程状态标识,并为所述进程状态标识赋予指示进程运行的初始值,在播放目标流数据的过程中,若监控到对流播放进程的结束操作,则将所述进程状态标识的值变更为指示进程关闭,以供流获取进程在判定进程状态标识并非指示进程关闭时,将目标流数据传递至流播放进程,使得可以在目标流数据传递给流播放进程前,通过进程状态标识的值判定流播放进程未关闭,避免了流获取进程在不知道流播放进程已关闭的情况下将流数据反馈给定位指针定位的内存中的位置,避免了定位指针不合法或定位指针已被释放的问题,解决了访问非法内存位置,程序崩溃的问题。

在本发明实施例中,优选地,所述监控到对流播放进程的结束操作的一种实现方式为:接收用户在流数据客户端上从目标流数据至其他流数据的播放切换操作,或,接收到用户对目标流数据的播放页面的关闭操作,所述播放切换操作包括在目标流数据的播放界面上按照设定方向的滑动操作。

接收用户在流数据客户端上播放切换操作,从目标流数据切换至其他流数据,或者接收用户对目标流数据的播放页面的关闭操作,其中播放切换操作可以包括在播放界面上按照设定方向的滑动操作,具体滑动操作可以是任意适用的操作,本实施例对此不做限制。

在本发明实施例中,优选地,在所述监控到对流播放进程的结束操作之后,还可以包括步骤:结束所述流播放进程。

在所述监控到对流播放进程的结束操作之后,结束流播放进程。

在本发明实施例中,优选地,还可以包括步骤:通知内存释放所述流播放进程的定位指针所占用的存储空间。

根据流播放进程的定位指针,通知内存释放定位指针指示的内存中相应的存储空间。

在本发明实施例中,优选地,在流获取进程在判定进程状态标识并非指示进程关闭之后,还可以包括步骤:通过运算操作将所述进程状态标识变更为第三数值,以由流获取进程在每次向流播放进程传递流数据时,根据进程状态标识的值为第一数值或第三数值判定并非指示进程关闭;在流获取进程本次传输完数据包之后,还可以包括步骤:将进程状态标识的值变更回第一数值。

在流获取进程判断所述进程状态标识的值并非指示进程关闭后,马上通过运算操作将进程状态标识变更为第三数值,然后在本次传输完,也就是该数据包传输完毕之后,将进程状态标识变更回第一数值。

判定定位指针携带的进程状态标识的值为第一数值或第三数值,则判定定位指针携带的进程状态标识的值并非指示进程关闭。

如此在流获取进程判断所述进程状态标识的值并非指示进程关闭后,将目标流数据传递至流播放进程的过程中,流播放进程被执行了关闭操作,上述的将进程状态标识变更为第三数值,可以使得流播放进程被执行关闭操作时不会释放对应的内存,避免了出现流数据反馈给定位指针定位的内存中的位置,避免了定位指针不合法或定位指针已被释放的问题,解决了访问非法内存位置,程序崩溃的问题。

参照图4,示出了根据本发明实施例四的一种进程间传递流数据的装置的结构框图,具体可以包括如下模块:

指示接收模块401,用于接收流播放进程传递至流获取进程的流获取指示,所述流获取指示携带针对所述流播放进程的定位指针,所述定位指针携带针对所述流播放进程的进程状态标识,在监控到所述流播放进程结束时,所述定位指针携带的进程状态标识的值变更为指示进程关闭;

流数据获取模块402,用于获取所述流获取指示对应的目标流数据;

状态判定模块403,用于判定所述定位指针携带的进程状态标识的值并非指示进程关闭;

流数据传递模块404,用于按照所述定位指针定位所述流播放进程,并将所述目标流数据传递至流播放进程,以供所述流播放进程播放所述目标流数据。

优选地,所述装置还包括:

操作不执行模块,用于若判定所述定位指针携带的进程状态标识的值指示进程关闭,则不执行按照所述定位指针定位所述流播放进程以及将所述目标流数据传递至流播放进程的操作。

优选地,所述进程状态标识在所述流播放进程创建时,对所述进程状态标识赋予第一数值,在所述流播放进程结束时,通过运算操作变更为第二数值;

所述状态判定模块包括:

第二数值识别子模块,用于识别所述定位指针携带的进程状态标识的值不是第二数值,则判定所述进程状态标识并非指示进程关闭。

优选地,所述判定所述定位指针携带的进程状态标识的值并非指示进程关闭的步骤,在每次向流播放进程传递目标流数据的数据包时执行;

第三变更模块,用于在执行所述判定所述定位指针携带的进程状态标识的值并非指示进程关闭之后,通过运算操作将所述进程状态标识变更为第三数值,在本次传输完数据包之后变更回第一数值;

所述状态判定模块包括:

值判定子模块,用于判定所述定位指针携带的进程状态标识的值为第一数值或第三数值。

优选地,所述流获取指示携带所述流播放进程针对流获取进程创建的回调函数,所述流数据传递模块包括:

回调执行子模块,用于执行所述回调函数,由所述回调函数将所述目标流数据传递至流播放进程。

优选地,所述流数据获取模块包括:

连接建立子模块,用于与存储目标流数据的传输节点建立连接;

通知子模块,用于按照所述定位指针定位所述流播放进程,向所述流播放进程发送连接建立的通知;

流数据获取子模块,用于从所述传输节点获取目标流数据。

优选地,所述流数据获取模块包括:

云端地址获取子模块,用于获取所述流获取指示对应的目标流数据的云端存储地址;

所述流数据传递模块包括:

地址传递子模块,用于根据所述云端存储地址下载目标流数据至本地,并将本地存储地址传递至流播放进程,以供所述流播放进程根据所述本地存储地址获取并播放目标流数据。

综上所述,依据本发明实施例,通过接收流播放进程传递至流获取进程的流获取指示,获取所述流获取指示对应的目标流数据,判定所述定位指针携带的进程状态标识的值并非指示进程关闭,按照所述定位指针定位所述流播放进程,并将所述目标流数据传递至流播放进程,以供所述流播放进程播放所述目标流数据,使得可以在目标流数据传递给流播放进程前,通过进程状态标识的值判定流播放进程未关闭,避免了流获取进程在不知道流播放进程已关闭的情况下将流数据反馈给定位指针定位的内存中的位置,避免了定位指针不合法或定位指针已被释放的问题,解决了访问非法内存位置,程序崩溃的问题。

参照图5,示出了根据本发明实施例五的一种进程间传递流数据的装置的结构框图,具体可以包括如下模块:

进程创建模块501,用于根据用户播放目标流数据的请求创建流播放进程,并创建针对定位流播放进程的定位指针,所述流播放进程通过创建流获取进程获取目标流数据,所述流获取进程通过定位指针定位流播放进程;

状态标识添加模块502,用于对所述定位指针添加指示进程状态标识,并为所述进程状态标识赋予指示进程运行的初始值;

状态标识变更模块503,用于在播放目标流数据的过程中,若监控到对流播放进程的结束操作,则将所述进程状态标识的值变更为指示进程关闭,以供流获取进程在判定进程状态标识并非指示进程关闭时,将目标流数据传递至流播放进程。

优选地,所述状态标识变更模块包括:

操作接收子模块,用于接收用户在流数据客户端上从目标流数据至其他流数据的播放切换操作,或,接收到用户对目标流数据的播放页面的关闭操作,所述播放切换操作包括在目标流数据的播放界面上按照设定方向的滑动操作。

优选地,所述装置还包括:

进程结束模块,用于在所述监控到对流播放进程的结束操作之后,结束所述流播放进程。

优选地,所述装置还包括:

空间释放模块,用于通知内存释放所述流播放进程的定位指针所占用的存储空间。

优选地,所述装置还包括:

第三变更操作模块,用于在流获取进程在判定进程状态标识并非指示进程关闭之后,通过运算操作将所述进程状态标识变更为第三数值,以由流获取进程在每次向流播放进程传递流数据时,根据进程状态标识的值为第一数值或第三数值判定并非指示进程关闭;

所述装置还包括:

第一变更模块,用于在流获取进程本次传输完数据包之后,将进程状态标识的值变更回第一数值。

综上所述,依据本发明实施例,通过根据用户播放目标流数据的请求创建流播放进程,并创建针对定位流播放进程的定位指针,对所述定位指针添加指示进程状态标识,并为所述进程状态标识赋予指示进程运行的初始值,在播放目标流数据的过程中,若监控到对流播放进程的结束操作,则将所述进程状态标识的值变更为指示进程关闭,以供流获取进程在判定进程状态标识并非指示进程关闭时,将目标流数据传递至流播放进程,使得可以在目标流数据传递给流播放进程前,通过进程状态标识的值判定流播放进程未关闭,避免了流获取进程在不知道流播放进程已关闭的情况下将流数据反馈给定位指针定位的内存中的位置,避免了定位指针不合法或定位指针已被释放的问题,解决了访问非法内存位置,程序崩溃的问题。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一种进程间传递流数据的方法和装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

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