[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]
单元节点查找模块,用于接收携带有内容单元存储标识的单元节点移除请求,并根据所述内容单元存储标识查找所述内容单元存储标识的单元节点的前一个单元节点和后一个单元节点;
[0040]
关联指针建立模块,用于建立所述前一个单元节点与所述后一个单元节点的后向关联指针,或者建立所述后一个单元节点与所述前一个单元节点的前向关联指针。
[0041]
可选的,还包括:
[0042]
单元数据查找模块,用于接收携带有内容单元存储标识的单元节点数据获取请求,并根据所述内容单元存储标识在所述内容单元数据库中查找目标单元节点的单元数据,并返回所述单元数据;
[0043]
关联指针建立模块,还用于建立所述目标单元节点与所述内容单元链表中头部节点的前向关联指针。
[0044]
第三方面,本发明实施例还提供了一种电子设备,该电子设备包括:
[0045]
一个或多个处理器;
[0046]
存储装置,用于存储一个或多个程序,
[0047]
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例中的任一种所述的播放内容管理方法。
[0048]
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例中的任一种所述的播放内容管理方法。
[0049]
本发明实施例接收携带有内容单元存储标识的单元节点插入请求,并判断内容单元数据库中是否存在内容单元存储标识;若不存在,则通过头插算法将单元节点添加至单元链表中头部节点的后一个单元节点,并判断内容单元链表的存储容量是否大于存储容量阈值;若大于,则移除内容单元链表中尾部节点的前一个单元节点。本发明实施例能够在检测到内容单元数据库的存储容量超过存储容量阈值时对不需要的内容单元进行自动移除,从而有效提升用户的使用满意程度。
附图说明
[0050]
图1是本发明实施例一中的播放内容管理方法的流程示意图;
[0051]
图2是本发明实施例二中的播放内容管理方法的流程示意图;
[0052]
图3是本发明实施例二中的在内容单元链表中插入单元节点的示意图;
[0053]
图4是本发明实施例三中的播放内容管理装置的结构示意图;
[0054]
图5是本实施例四中的电子设备的结构示意图。
具体实施方式
[0055]
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0056]
实施例一
[0057]
图1是本发明实施例一中的播放内容管理方法的流程示意图。本实施例可适用于对内容单元链表中的单元节点进行自动移除的情况。本实施例方法可由播放内容管理装置来执行,该装置可采用硬件/或软件的方式来实现,并可配置于电子设备中。可实现本申请任意实施例所述的播放内容管理方法。如图1所示,该方法具体包括如下:
[0058]
s110、接收携带有内容单元存储标识的单元节点插入请求,并判断内容单元数据
库中是否存在内容单元存储标识;若不存在,则执行s120;若存在,则执行s150。
[0059]
在本实施例中,内容单元为电子播放设备中存储的播放信息,例如故事机中存储的亲子故事或者音乐器件中存储的流行歌曲。内容单元存储标识为该内容单元存储在单元数据库中的唯一标识,内容单元存储标识可以为内容单元的存储id(identity document,身份标识码)、存储地址或者是自定义的字符串(例如按照存储顺序定义的数值1,2,......)等。
[0060]
本实施例的适用场景为存储内容单元的电子设备接收到播放请求时,需要从服务器中查找播放请求中所需的内容单元,并存储在内容单元数据库中以进行循环播放;其中,电子设备可以为故事机或者智能手机等;具体的,内容单元数据库中存储着内容单元存储标识、单元数据以及内容单元存储标识与单元数据之间的关联关系。
[0061]
在接收到单元节点插入请求时,为了避免内容单元链表中的单元节点出现重复存储的问题,因此,需要检测该单元节点对应的内容单元存储标识是否存储在内容单元数据库中;若存在,则需要对该单元节点下的单元数据进行更新处理;若不存在,则需要在内容单元链表中创建一个新的单元节点,并在内容单元数据库中存储该新的单元节点关联的单元数据。
[0062]
s120、通过头插算法将单元节点添加至单元链表中头部节点的后一个单元节点,并判断内容单元链表的存储容量是否大于存储容量阈值;若大于,则执行s130;若不大于,则执行s140。
[0063]
在本实施例中,在内容单元链表中插入新的单元节点后,都需要判断内容单元链表的存储容量是否满足要求,若不满足,则需要对内容单元链表进行存储更新,以实现对不需要或者不常看的内容单元进行有效清除,以保证新的内容单元能够添加至内容单元链表中,从而能够及时的满足用户的收听需求。
[0064]
需要说明的是,内容单元链表中存储着内容单元的单元节点顺序,内容单元链表中对各个单元节点的存储顺序能够有效反映出用户对该单元节点下单元数据的倾听度。
[0065]
s130、移除内容单元链表中尾部节点的前一个单元节点。
[0066]
在本实施例中,当内容单元链表的存储容量超过存储容量阈值时,即表明内容单元链表的存储容量已满,若不进行单元节点的移除,则新的单元节点将不能被存储在内容单元链表中;将内容单元链表中的最后一个单元节点进行移除,才能够节省空间使新的单元节点添加进来。
[0067]
s140、更新内容单元链表的存储容量。
[0068]
在本实施例中,当内容单元链表的存储容量未超过存储容量阈值,则表明内容单元链表还能够容纳新的节点单元,则需要将内容单元链表的存储容量加1,以对内容单元链表的存储容量进行实时记录,从而能够对内容单元链表的存储容量进行可视化管理。
[0069]
s150、移除内容单元存储标识的单元节点,并通过头插算法将单元节点添加至单元链表中头部节点的后一个单元节点。
[0070]
在本实施例中,从内容单元链表中移除该单元节点的存储位置,并将该单元节点的存储位置更新到第一个单元节点的存储位置上,即将该单元节点的位置更新到头部节点的下一个位置上,以体现出该单元节点的播放优先性。
[0071]
本发明实施例接收携带有内容单元存储标识的单元节点插入请求,并判断内容单
元数据库中是否存在内容单元存储标识;若不存在,则通过头插算法将单元节点添加至单元链表中头部节点的后一个单元节点,并判断内容单元链表的存储容量是否大于存储容量阈值;若大于,则移除内容单元链表中尾部节点的前一个单元节点。本发明实施例能够在检测到内容单元数据库的存储容量超过存储容量阈值时对不需要的内容单元进行自动移除,从而有效提升用户的使用满意程度。
[0072]
实施例二
[0073]
图2是本发明实施例二中的播放内容管理方法的流程示意图。本实施例是在上述实施例的基础上进一步扩展与优化,并可与上述技术方案中任意可选方案组合。如图2所示,该方法包括:
[0074]
s210、接收携带有内容单元存储标识的单元节点插入请求,并判断内容单元数据库中是否存在内容单元存储标识;若不存在,则执行s220;若存在,则执行s260。
[0075]
s220、通过头插算法将单元节点添加至单元链表中头部节点的后一个单元节点,并判断内容单元链表的存储容量是否大于存储容量阈值;若大于,则执行s230;若不大于,则执行s250。
[0076]
s230、确定内容单元链表中尾部节点的前一个单元节点。
[0077]
在本实施例中,内容单元链表中至少会包括两个端点节点,即尾部节点和头部节点,头部节点在内容单元链表的第一个存储位置上,尾部节点在内容单元链表的最后一个存储位置上。
[0078]
由于本实施例中的内容单元链表中加入了hashmap的数据结构,因此,利用单元节点的内容单元存储标识能够有效快速的定位到该单元节点的位置上;具体的,确定内容单元链表中尾部节点的前一个单元节点,包括:获取尾部节点的节点存储标识,以定位到尾部节点,再尾部节点定位至前一个单元节点上。
[0079]
s240、根据尾部节点的前一个单元节点的内容单元存储标识,在内容单元数据库中移除内容单元存储标识和内容单元存储标识关联的单元数据。
[0080]
在本实施例中,内容单元数据库中存储着内容单元存储标识和相应的单元数据,在需要从内容单元链表中移除一个节点单元时,则需要在内容单元数据库中移除该节点单元相应的存储信息,以确保内容单元数据库与内容单元链表的信息一致性。
[0081]
s250、更新内容单元链表的存储容量。
[0082]
s260、移除内容单元存储标识的单元节点,并通过头插算法将单元节点添加至单元链表中头部节点的后一个单元节点。
[0083]
在上述实施例的基础上,可选的,通过头插算法将单元节点添加至单元链表中头部节点的后一个单元节点,包括:
[0084]
建立内容单元存储标识的单元节点与内容单元链表中头部节点的前向关联指针,以及,建立单元节点与头部节点的后一个单元节点的后向关联指针;
[0085]
根据前向关联指针和后向关联指针,将单元节点插入内容单元链表中。
[0086]
在本实施例中,前向关联指针中包括pre指针和next指针;后向关联指针中也包括pre指针和next指针;前向关联指针和后向关联指针可以代表指针关联的两个单元节点在内容单元链表中的前后位置关系;pre指针初始点的单元节点为pre指针指向点的单元节点的后一个位置上的单元节点;next指针初始点的单元节点为next指针指向点的单元节点的
前一个位置上的单元节点。
[0087]
具体的,将内容单元链表中头部节点的下一个单元节点的pre指针指向该单元节点(例如单元节点a);将该单元节点的next指针指向头部节点的下一个单元节点;将该单元节点的pre指针指向头部节点;将头部节点的next指针指向该单元节点;可参见图3,图3为内容单元链表中插入单元节点的示意图。
[0088]
本发明实施例采用在内容单元链表的头部插入新的单元节点,在不破坏后面链表结构的基础上实现节点的高效插入,同时还能保证相邻单元节点间的逻辑连接性。
[0089]
在上述实施例的基础上,可选的,本实施例方法还包括:
[0090]
接收携带有内容单元存储标识的单元节点移除请求,并根据内容单元存储标识查找内容单元存储标识的单元节点的前一个单元节点和后一个单元节点;
[0091]
建立前一个单元节点与后一个单元节点的后向关联指针,或者建立后一个单元节点与前一个单元节点的前向关联指针。
[0092]
在本实施例中,移除内容单元链表中的一个单元节点时,需要对该单元节点前后节点的指针进行重连接;以移除的单元节点为a进行事例说明;其中,节点a的前一个单元节点为b,后一个单元节点为c;具体的,将单元节点b的next指针指向单元节点c,将单元节点c的pre指针指向单元节点b,则完成内容单元链表中单元节点的移除工作。
[0093]
本发明实施例在移除内容单元链表中的一个单元节点时,通过对其前节点和后节点关联指针的指向变化,有效保证节点移除后前节点与后节点的逻辑连接关系。
[0094]
在上述实施例的基础上,可选的,本实施例方法还包括:
[0095]
接收携带有内容单元存储标识的单元节点数据获取请求,并根据内容单元存储标识在内容单元数据库中查找目标单元节点的单元数据,并返回单元数据;
[0096]
建立目标单元节点与内容单元链表中头部节点的前向关联指针。
[0097]
在本实施例中,根据内容单元存储标识可直接在内容单元数据库中定位到该单元节点的存储位置,并快速查找到单元节点的单元数据,并将该单元节点的位置移至第一个单元节点的位置处。本发明实施例在提取到单元节点的单元数据后,对该单元节点的存储位置进行更新,以适应用户的观看需求,从而自动根据用户需求对内容单元链表中的各单元节点进行智能排序。
[0098]
实施例三
[0099]
图4是本发明实施例三中的播放内容管理装置的结构示意图,本实施例可适用于对内容单元链表中的单元节点进行自动移除的情况。该装置配置于电子设备中,可实现本申请任意实施例所述的播放内容管理方法。该装置具体包括如下:
[0100]
存储标识判断模块410,用于接收携带有内容单元存储标识的单元节点插入请求,并判断内容单元数据库中是否存在所述内容单元存储标识;
[0101]
单元节点插入模块420,用于若不存在,则调用头插算法将所述携带有内容单元存储标识的单元节点添加至单元链表中头部节点的后一个单元节点,并判断所述内容单元链表的存储容量是否大于存储容量阈值;
[0102]
单元节点移除模块430,用于若大于,则移除所述内容单元链表中尾部节点的前一个单元节点。
[0103]
在上述实施例的基础上,可选的,单元节点移除模块430,还用于若存在,则移除所
述内容单元存储标识的单元节点,并调用头插算法将所述单元节点添加至单元链表中头部节点的后一个单元节点。
[0104]
在上述实施例的基础上,可选的,单元节点插入模块420,具体用于:
[0105]
建立所述内容单元存储标识的单元节点与内容单元链表中头部节点的前向关联指针,以及,建立所述单元节点与所述头部节点的后一个单元节点的后向关联指针;
[0106]
根据所述前向关联指针和所述后向关联指针,将所述单元节点插入所述内容单元链表中。
[0107]
在上述实施例的基础上,可选的,单元节点移除模块430,具体用于:
[0108]
确定所述内容单元链表中尾部节点的前一个单元节点;
[0109]
根据所述尾部节点的前一个单元节点的内容单元存储标识,在所述内容单元数据库中移除所述内容单元存储标识和所述内容单元存储标识关联的单元数据。
[0110]
在上述实施例的基础上,可选的,本实施例装置还包括:
[0111]
存储容量更新模块,用于若不大于,则更新所述内容单元链表的存储容量。
[0112]
在上述实施例的基础上,可选的,本实施例装置还包括:
[0113]
单元节点查找模块,用于接收携带有内容单元存储标识的单元节点移除请求,并根据所述内容单元存储标识查找所述内容单元存储标识的单元节点的前一个单元节点和后一个单元节点;
[0114]
关联指针建立模块,用于建立所述前一个单元节点与所述后一个单元节点的后向关联指针,或者建立所述后一个单元节点与所述前一个单元节点的前向关联指针。
[0115]
在上述实施例的基础上,可选的,本实施例装置还包括:
[0116]
单元数据查找模块,用于接收携带有内容单元存储标识的单元节点数据获取请求,并根据所述内容单元存储标识在所述内容单元数据库中查找目标单元节点的单元数据,并返回所述单元数据;
[0117]
关联指针建立模块,还用于建立所述目标单元节点与所述内容单元链表中头部节点的前向关联指针。
[0118]
通过本发明实施例三的播放内容管理装置,能够在检测到内容单元数据库的存储容量超过存储容量阈值时对不需要的内容单元进行自动移除,从而有效提升用户的使用满意程度。
[0119]
本发明实施例所提供的播放内容管理装置可执行本发明任意实施例所提供的播放内容管理方法,具备执行方法相应的功能模块和有益效果。
[0120]
实施例四
[0121]
图5是本发明实施例四中的电子设备的结构示意图,如图5所示,该电子设备包括处理器510、存储器520、输入装置530和输出装置540;电子设备中处理器510的数量可以是一个或多个,图5中以一个处理器510为例;电子设备中的处理器510、存储器520、输入装置530和输出装置540可以通过总线或其他方式连接,图5中以通过总线连接为例。
[0122]
存储器520作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的播放内容管理方法对应的程序指令/模块。处理器510通过运行存储在存储器520中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现本发明实施例所提供的播放内容管理方法。
[0123]
存储器520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器520可进一步包括相对于处理器510远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0124]
输入装置530可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入,可以包括键盘、鼠标等。输出装置540可包括显示屏等显示设备。
[0125]
实施例五
[0126]
本实施例提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于实现本发明实施例所提供的播放内容管理方法。
[0127]
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的播放内容管理方法中的相关操作。
[0128]
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0129]
值得注意的是,上述搜索装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0130]
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。