曲库更新方法、装置、设备及存储介质与流程
未命名
09-13
阅读:108
评论:0
1.本发明涉及音频技术领域:
:,尤其涉及一种曲库更新方法、装置、设备及存储介质。
背景技术:
::2.目前,对于单机版ktv点歌机,歌曲信息存储在本地歌曲数据库(简称为“曲库”)中,曲库数据的实时性尤为重要。为确保曲库数据实时性,需要对曲库进行更新。现有的曲库更新方式是先解析全量歌曲文件中的歌曲,然后将解析到的歌曲循环插入到曲库中以实现对曲库的更新。在循环更新歌曲时,需要依次判断解析到的各歌曲是否存在于曲库中,进而针对判断结果实现歌曲更新;但是,若需更新的歌曲数量过多,如10w首,则需要针对每首歌曲均进行上述判断逻辑,而每次判断逻辑均需要操作曲库,因此需要操作10w次曲库,从而因频繁操作曲库导致更新效率较低。3.上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。技术实现要素:4.本发明的主要目的在于提供了一种曲库更新方法、装置、设备及存储介质,旨在解决现有技术曲库更新方式在循环更新歌曲时,需要依次判断解析到的各歌曲是否存在于曲库中,若需更新的歌曲数量过多,会因频繁操作曲库导致更新效率较低的技术问题。5.为实现上述目的,本发明提供了一种曲库更新方法,所述曲库更新方法包括以下步骤:6.获取全量歌曲列表,并获取所述全量歌曲列表中各更新歌曲的标识信息;7.通过所述标识信息将所述全量歌曲列表划分为新歌列表和待更新列表;8.基于所述新歌列表和所述待更新列表对本地曲库进行更新。9.可选地,所述通过所述标识信息将所述全量歌曲列表划分为新歌列表和待更新列表的步骤包括:10.将所述标识信息在本地曲库中的更新歌曲列表确定为待更新列表;11.将所述标识信息不在所述本地曲库中的更新歌曲列表确定为新歌列表。12.可选地,所述基于所述新歌列表和所述待更新列表对本地曲库进行更新的步骤,包括:13.基于所述新歌列表和所述待更新列表中的各更新歌曲的歌曲信息,分别构建与所述新歌列表及所述待更新列表对应的sql语句,其中,单个sql语句用于被执行时访问所述本地曲库并完成相应列表的更新操作后退出访问;14.分别执行所述新歌列表及所述待更新列表对应的sql语句,以对所述本地曲库进行更新。15.可选地,所述基于所述新歌列表和所述待更新列表对本地曲库进行更新的步骤之后,还包括:16.下载下架歌曲文件,并解析所述下架歌曲文件中的所有歌曲,获得下架歌曲列表;17.对比所述下架歌曲列表与所述本地曲库中的歌曲列表,获得对比结果;18.基于所述对比结果,确定所述下架歌曲列表与所述本地曲库中歌曲列表的交集部分作为下架歌曲;19.删除所述本地曲库中的所述下架歌曲。20.可选地,所述通过所述标识信息将所述全量歌曲列表划分为新歌列表和待更新列表的步骤之前,还包括:21.定位本地用于存储歌曲信息的目标曲库;22.对所述目标曲库中的歌曲列表进行备份,获得备份歌曲列表,并将所述备份歌曲列表作为本地曲库;23.相应地,所述删除所述本地曲库中的所述下架歌曲的步骤之后,还包括:24.替换所述目标曲库中的歌曲列表为所述本地曲库,以完成曲库更新。25.可选地,所述获取全量歌曲列表的步骤,包括:26.在检测到本地曲库处于待更新状态时,从云端下载全量歌曲列表文件;27.解析所述全量歌曲列表文件中的所有歌曲,获得全量歌曲列表。28.可选地,所述获取所述全量歌曲列表中各更新歌曲的标识信息的步骤之前,还包括:29.在设备启动时,分别启动主线程和后台线程,其中,所述主线程用于响应点唱歌曲操作,所述后台线程用于静默更新所述本地曲库。30.此外,为实现上述目的,本发明还提出一种曲库更新装置,所述装置包括:31.标识信息模块,用于获取全量歌曲列表,并获取所述全量歌曲列表中各更新歌曲的标识信息;32.列表划分模块,用于通过所述标识信息将所述全量歌曲列表划分为新歌列表和待更新列表;33.曲库更新模块,用于基于所述新歌列表和所述待更新列表对本地曲库进行更新。34.此外,为实现上述目的,本发明还提出一种曲库更新设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的曲库更新程序,所述曲库更新程序配置为实现如上文所述的曲库更新方法的步骤。35.此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有曲库更新程序,所述曲库更新程序被处理器执行时实现如上文所述的曲库更新方法的步骤。36.本发明提供了一种曲库更新方法、装置、设备及存储介质,该方法首先获取全量歌曲列表,并获取全量歌曲列表中各更新歌曲的标识信息;然后通过标识信息将全量歌曲列表划分为新歌列表和待更新列表;最后基于新歌列表和待更新列表对本地曲库进行更新。本发明通过标识信息将全量歌曲列表划分为新歌列表和待更新列表,然后通过新歌列表和待更新列表对本地曲库进行更新,相较于现有的曲库更新方式在循环更新歌曲时,需要依次判断解析到的各歌曲是否存在于曲库中,进而针对判断结果实现歌曲更新;但是,若需更新的歌曲数量过多,如10w首,则需要针对每首歌曲均进行上述判断逻辑,而每次判断逻辑均需要操作曲库,因此需要操作10w次曲库,从而存在因频繁操作曲库导致更新效率较低的问题。本发明上述方式通过划分新歌列表和待更新列表进行曲库更新,无需依次判断全量歌曲中的更新歌曲是否在本地曲库中,有效减少了操作次数,提高了更新效率。附图说明37.图1为本发明实施例方案涉及的硬件运行环境的曲库更新设备的结构示意图;38.图2为本发明曲库更新方法第一实施例的流程示意图;39.图3为本发明曲库更新方法第二实施例的流程示意图;40.图4为本发明曲库更新方法第三实施例的流程示意图;41.图5为本发明曲库更新方法第三实施例中的曲库更新的整体流程示意图;42.图6为本发明曲库更新装置第一实施例的结构框图。43.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式44.应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。45.参照图1,图1为本发明实施例方案涉及的硬件运行环境的曲库更新设备结构示意图。46.如图1所示,该曲库更新设备可以包括:处理器1001,例如中央处理器(centralprocessingunit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(wireless-fidelity,wi-fi)接口)。存储器1005可以是高速的随机存取存储器(randomaccessmemory,ram),也可以是稳定的非易失性存储器(non-volatilememory,nvm),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。47.本领域技术人员可以理解,图1中示出的结构并不构成对曲库更新设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。48.如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及曲库更新程序。49.在图1所示的曲库更新设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明曲库更新设备中的处理器1001、存储器1005可以设置在曲库更新设备中,所述曲库更新设备通过处理器1001调用存储器1005中存储的曲库更新程序,并执行本发明实施例提供的曲库更新方法。50.本发明实施例提供了一种曲库更新方法,参照图2,图2为本发明曲库更新方法第一实施例的流程示意图。51.本实施例中,所述曲库更新方法包括以下步骤:52.步骤s10:获取全量歌曲列表,并获取所述全量歌曲列表中各更新歌曲的标识信息。53.需要说明的是,本实施例方法的执行主体可以是具有曲库更新、数据处理、网络通信以及程序运行功能的计算服务设备,例如点歌机,还可以是实现相同或相似功能的其他电子设备,如上述曲库更新设备。以下以上述曲库更新设备对本实施例和下述各实施例进行说明。54.可理解的是,上述全量歌曲列表可为处于云端中,存有最新版本歌曲信息的云端曲库列表。其中,全量歌曲列表中的各歌曲均为上述更新歌曲。55.需要说明的是,上述标识信息可为表征歌曲特征的唯一序列号,如歌曲id。该歌曲特征可为歌曲的名称、演唱该歌曲的歌手以及歌曲大小等。用户通过该标识信息即可锁定该标识信息所标识的歌曲。56.在具体实现中,上述曲库更新设备可在检测到本地曲库中存在旧版本的歌曲时,也即本地曲库需要更新时,可从云端获取全量歌曲列表,然后提取全量歌曲列表中各更新歌曲的标识信息。上述曲库更新设备也可定时获取全量歌曲列表中各更新歌曲的标识信息,并执行后续的曲库更新操作,以保证本地曲库中存储的歌曲为最新的歌曲,便于用户点歌使用。57.应理解的是,上述本地曲库可为点歌机保存歌曲信息的数据库。58.进一步地,为了增加本地曲库中歌曲的数量,提高产品竞争力,本实施例中,所述步骤s10包括:59.步骤s101:在检测到本地曲库处于待更新状态时,从云端下载全量歌曲列表文件。60.需要说明的是,上述全量歌曲列表文件即可为包含上述全量歌曲列表的文件。61.在具体实现中,上述曲库更新设备在检测到本地曲库处于待更新状态,也即本地曲库需要更新时,可从云端下载全量歌曲列表文件。62.步骤s102:解析所述全量歌曲列表文件中的所有歌曲,获得全量歌曲列表。63.在具体实现中,上述全量曲库设备可对下载获得的全量歌曲列表文件进行解析,获得全量歌曲列表文件中的全部歌曲,由全部歌曲构成上述全量歌曲列表。64.应理解的是,常规的曲库更新方式是解析全量歌曲列表中的前部分歌曲,如前10w首歌曲。而本实施例是解析全量歌曲列表中的全部歌曲,通过全部歌曲对本地曲库进行更新,增加本地曲库中歌曲的数量,使本地曲库的歌曲较为全面,进一步提高了产品竞争力。65.进一步地,为了避免曲库更新影响用户点唱歌曲,本实施例中,所述步骤s10之前,还包括:66.步骤s01:在设备启动时,分别启动主线程和后台线程,其中,所述主线程用于响应点唱歌曲操作,所述后台线程用于静默更新所述本地曲库。67.在具体实现中,上述曲库更新设备在启动后,同时启动主线程和后台线程,通过后台线程进行曲库更新,从而实现本地曲库的静默升级。并且,由于更新过程不占用主线程,有效减少了点歌机的开机速度,提高了用户的使用体验。68.需要说明的是,上述主线程可响应用户的点唱歌曲操作,避免曲库更新过程中无法进行点唱歌曲。69.可理解的是,上述曲库更新的歌曲数据库可以和用户实时点唱歌曲的数据库不一致,也即,存在两个数据库,一个用于静默升级,一个用于用户点唱歌曲操作,以避免用户点歌时恰巧该歌曲在更新。同时,在进行曲库更新的数据库更新完成后,可将该更新后的数据库替换用户点错歌曲的数据库,从而使得用户点唱歌曲的数据库为最新歌曲信息的数据库。70.需要说明的是,上述曲库更新设备可通过后台线程进行曲库更新,由于响应曲库更新的为后台线程,并不会影响主线程,因此可以避免曲库更新影响用户点唱歌曲,实现了静默升级。71.步骤s20:通过所述标识信息将所述全量歌曲列表划分为新歌列表和待更新列表。72.需要说明的是,上述新歌列表中的歌曲可为本地曲库中所缺失的歌曲。73.可理解的是,上述待更新列表中的歌曲可为本地曲库中存在的歌曲,但待更新列表中的歌曲的版本为本地曲库中对应歌曲的新版本。74.在具体实现中,若全量歌曲列表中的某一歌曲的标识信息不在本地曲库中,则可认定该歌曲为新歌,可将全量歌曲列表中的该歌曲划分至新歌列表。相应地,若全量歌曲列表中的某一歌曲的标识信息在本地曲库中,则可认定本地曲库中存在该歌曲,区别在于本地曲库中的该歌曲版本低于全量歌曲列表中的该歌曲,需要将本地曲库中的该歌曲的信息更新至本地曲库中的该歌曲中,可将全量歌曲列表中的该歌曲划分至待更新列表中。也即通过标识信息即可将全量歌曲列表划分为新歌列表和待更新列表。75.进一步地,本实施例中,所述步骤s20包括:76.步骤s201:将所述标识信息在本地曲库中的更新歌曲列表确定为待更新列表。77.在具体实现中,全量歌曲列表中的各更新歌曲均有对应的标识信息,本地曲库中的各本地歌曲也均有对应的标识信息,因此,上述曲库升级设备可通过判断全量歌曲列表中各更新歌曲的标识信息是否与本地曲库中某一歌曲的标识信息一致以将全量歌曲列表划分为新歌列表和待更新列表。78.应理解的是,由于全量歌曲列表中的各更新歌曲均为最新版本,其歌曲信息均为最新的歌曲信息,因此,若全量歌曲列表中某更新歌曲的标识信息与本地歌曲中某歌曲的标识信息一致,则可认定本地曲库中存在该歌曲,并且全量歌曲列表中对应的歌曲为待更新歌曲,但是该歌曲并非新歌,而是旧版本的歌曲,也即待更新歌曲的歌曲信息并非最新的信息,需要对歌曲信息进行更新,将所有判定为待更新歌曲划分至一个列表,该列表即为待更新列表。79.步骤s202:将所述标识信息不在所述本地曲库中的更新歌曲列表确定为新歌列表。80.在具体实现中,上述曲库升级设备在判断出全量歌曲列表中某更新歌曲的标识信息在本地曲库中没有歌曲的标识信息与之对应,则可判定全量歌曲列表中的该歌曲为新歌,将全量歌曲列表中所有判定为新歌的歌曲划分至一个列表,该列表即为新歌列表。81.步骤s30:基于所述新歌列表和所述待更新列表对本地曲库进行更新。82.在具体实现中,上述曲库更新设备可将新歌列表中的歌曲插入至本地曲库中,使本地曲库中存储新歌列表中的各新歌;相应地,可将待更新列表中的各歌曲的歌曲信息或版本更新至本地曲库中,使本地曲库中的各歌曲信息为最新信息或各歌曲版本为最新版本。其中,对本地曲库进行更新即可为对本地曲库进行升级。83.应理解的是,上述更新过程均可在后台线程中进行,并不影响主线程响应的点唱歌曲操作,实现了本地曲库的静默升级。84.本实施例首先获取全量歌曲列表,并获取全量歌曲列表中各更新歌曲的标识信息;然后通过标识信息将全量歌曲列表划分为新歌列表和待更新列表;最后基于新歌列表和待更新列表对本地曲库进行更新。本实施例通过标识信息将全量歌曲列表划分为新歌列表和待更新列表,然后通过新歌列表和待更新列表对本地曲库进行更新,相较于现有的曲库更新方式在循环更新歌曲时,需要依次判断解析到的各歌曲是否存在于曲库中,进而针对判断结果实现歌曲更新;但是,若需更新的歌曲数量过多,如10w首,则需要针对每首歌曲均进行上述判断逻辑,而每次判断逻辑均需要操作曲库,因此需要操作10w次曲库,从而存在因频繁操作曲库导致更新效率较低的问题。本实施例上述方式通过划分新歌列表和待更新列表进行曲库更新,无需依次判断全量歌曲中的更新歌曲是否在本地曲库中,有效减少了操作次数,提高了更新效率。85.参考图3,图3为本发明曲库更新方法第二实施例的流程示意图。86.基于上述第一实施例,在本实施例中,所述步骤s30包括:87.步骤s301:基于所述新歌列表和所述待更新列表中的各更新歌曲的歌曲信息,分别构建与所述新歌列表及所述待更新列表对应的sql语句,其中,单个sql语句用于被执行时访问所述本地曲库并完成相应列表的更新操作后退出访问。88.需要说明的是,在进行曲库更新的过程中,在新歌列表和待更新列表中的歌曲数量较多时,依次对各歌曲进行更新时耗时较长,导致更新效率低,故而提出本实施例,以提高更新效率。89.可理解的是,上述sql语句可为对本地曲库进行更新操作的一种语言。单个sql语句用于被执行时访问所述本地曲库并完成相应列表的更新操作后退出访问,如新歌插入和待更新歌曲更新。90.在具体实现中,,上述曲库更新设备可遍历新歌列表中的各新歌,通过第一预设sql语法,将各新歌的歌曲id、歌曲名称、歌曲类型等歌曲信息组装成一条第一sql语句。91.应理解的是,上述第一预设sql语法可为对各新歌的歌曲id、歌曲名称、歌曲类型等歌曲信息进行sql组装的语法结构,可由技术人员所设定。其中,上述第一预设sql语法可如下所示:92.insertintosong_table_name93.(songid,songname,songtype,...)94.values95.(新歌id1,"新歌名1",新歌类型1,...),96.(新歌id2,"新歌名2",新歌类型2,...),97.(新歌id3,"新歌名3",,新歌类型3,...),98....99.上述语法的逻辑可为插入歌曲信息的逻辑,即将各新歌的新歌id、新歌名以及新歌类型等信息均插入至本地曲库中。将各新歌的歌曲信息添至上述第一预设sql语法中即可获得上述第一sql语句,该第一sql语句可以包含所有新歌歌曲的插入逻辑,从而可通过执行一条该第一sql语句即可实现所有新歌歌曲的插入。100.在具体实现中,上述曲库更新设备可遍历待更新歌列表中的各待更新歌曲,通过第二预设sql语法,将各待更新歌曲的歌曲id、歌曲名称、歌曲类型等歌曲信息组装成一条第二sql语句。101.应理解的是,上述第二预设sql语法可为对各待更新歌曲的歌曲id、歌曲名称、歌曲类型等歌曲信息进行sql组装的语法结构,可由技术人员所设定,其中,上述第二预设sql语法可如下所示:102.updatesong_table_name103.setsongname=104.casesongid105.when更新歌曲id1then"更新歌曲名1"106.when更新歌曲id2then"更新歌曲名2"107....108.end,109.songtype=110.casesongid111.when更新歌曲id1then"更新歌曲类型1"112.when更新歌曲id2then"更新歌曲类型2"113....114.end,115....116.end117.wheresongidin(更新歌曲id1,更新歌曲id1,...)118.上述语法的逻辑可为歌曲信息更新的逻辑,即更新本地曲库中待更新歌曲的歌曲id、歌曲名以及歌曲类型等歌曲信息。将各待更新的歌曲信息添至上述第二预设sql语法中即可获得上述第二sql语句,该第二sql语句可以包含所有待更新歌曲的更新逻辑,从而可通过执行一条该第二sql语句即可实现所有待更新歌曲歌曲信息的更新。119.步骤s302:分别执行所述新歌列表及所述待更新列表对应的sql语句,以对所述本地曲库进行更新。120.在具体实现中,上述曲库更新设备可通过单条执行sql语句实现对本地曲库的更新。121.应理解的是,执行sql语句即为修改数据库文件,涉及到io操作,若执行多条sql语句,每一条语句均需要修改一次数据库文件,比较耗时,导致效率低。而通过将歌曲信息组装为一条sql语句,执行一条sql语句,只涉及一次数据文件的修改,有效提高了曲库更新的速度,进而提高了执行的效率。122.在具体实现中,上述曲库更新设备可执行上述一条第一sql语句,即可完成所有新歌的插入,实现了将各新的歌歌曲信息插入至本地曲库。由于是单条执行sql语句,有效提高了新歌歌曲插入的效率。同时,上述曲库更新设备可执行上述一条第二sql语句,即可完成所有待更新歌曲的更新,实现了将待更新歌曲信息更新至本地曲库。由于是单条执行sql语句,有效提高了待更新歌曲的更新效率。123.参考图4,图4为本发明曲库更新方法第三实施例的流程示意图。124.基于上述各实施例,在本实施例中,所述步骤s30之后,还包括:125.步骤s40:下载下架歌曲文件,并解析所述下架歌曲文件,获得下架歌曲列表。126.需要说明的是,在对本地曲库进行升级或更新的过程中,还会涉及到删除本地曲库中的下架歌曲。现有的方式是在获取到下架歌曲文件后,直接根据下架歌曲文件对本地曲库中对应的歌曲进行删除,实现下架。但是,上述方式在删除下架歌曲过程中,存在很多历史下架歌曲,为无效数据,导致点歌机的资源(如内存、cpu等)浪费,增加耗时。故而提出本实施例,以减少耗时,避免点歌机资源浪费,提高歌曲下架效率。127.可理解的是,上述下架歌曲文件可为处于云端中,包含最新下架歌曲信息的文件。128.需要说明的是,上述下架歌曲列表即可为上述下架歌曲文件中所包含的下架歌曲所构成的列表。129.在具体实现中,上述曲库更新设备可获取云端中的下架歌曲文件,并对该下架歌曲文件中的所有歌曲进行解析,获得下架歌曲列表。130.步骤s50:对比所述下架歌曲列表与本地曲库中的歌曲列表,获得对比结果。131.需要说明的是,上述本地曲库中的歌曲列表即可为本地歌曲中的各歌曲所构成的列表,该本地歌曲中的各歌曲可为经过上述实施例的新歌列表和待更新列表更新后的歌曲。132.在具体实现中,上述曲库更新设备可对比下架歌曲列表与本地歌曲列表,以避免对已下架过的歌曲重新进行下架,造成资源浪费。133.步骤s60:基于所述对比结果,确定所述下架歌曲列表与本地曲库中歌曲列表的交集部分作为下架歌曲。134.在具体实现中,上述曲库更新设备可取上述本地歌曲列表与下架歌曲列表的交集,将本地歌曲列表与下架歌曲列表中相同的歌曲作为实际的下架歌曲,从而避免了对已下架过的歌曲重新进行下架。135.步骤s70:删除所述本地曲库中的所述下架歌曲。136.在具体实现中,上述曲库更新设备删除上述实际的下架歌曲后,即可实现本地曲库的更新。例如,若下架歌曲列表有13w首歌曲,在取上述本地歌曲列表与下架歌曲列表的交集后,实际下架的歌曲可能不到100首,整个过程的下架效率提高了30%左右。137.本实施例通过将所述对比结果中所述本地歌曲列表与所述下架歌曲列表的交集部分作为下架歌曲,避免了对交集之外的无效数据进行下架处理所导致的点歌机的资源(如内存、cpu等)浪费,增加耗时等问题。有效减少了耗时,避免点歌机资源浪费,提高了歌曲下架效率。138.为了便于理解,参考图5进行说明,但并不对本方案进行限定。图5为本发明曲库更新方法第三实施例中的曲库更新的整体流程示意图图,图5中可包含本地曲库进行更新或升级的全过程,包括新歌插入,歌曲更新(待更新歌曲的更新)以及歌曲下架。图中,上述曲库更新设备应用于点歌机中,点歌机开机完成后,启动主线程和后台线程,主线程响应用户点唱歌曲,后台线程响应曲库更新,在后台线程中检查曲库是否需要更新,若否,则表示曲库为最新状态,无需更新,更新流程结束,若是,则下载全量歌曲文件,解析歌曲列表(50w首)获得新歌列表和待更新列表,将新歌列表批量插入曲库,通过待更新列表批量更新曲库,然后下载全量下架歌曲文件,解析歌曲下架列表(13w首),然后下架列表与本地曲库歌曲列表取交集(100首),批量删除曲库中的下架歌曲,实现歌曲更新,更新流程结束。139.应理解的是,上述歌曲数量,如50w首、13w首均为举例说明,并不对本方案进行限定,实际更新过程中可为其他数量。140.需要说明的是,上述新歌插入和待更新歌曲的更新可同时进行,故而本地曲库的更新时长可为新增/更新歌曲加上下架歌曲时长。以10w歌曲为例进行计算,更新耗时为4min×0.2=0.8min,4min为常规方式更新的时长,若以40w歌曲为,数据量为10w的4倍,故耗时会有增加,为0.8min×4=3.2min,下架歌曲耗时为3min×0.7=2.1min,3min为常规方式下架的时长,总更新时长为3.2min+2.1min=5.3min,若使用常规方案,则总时差为4min+3min=7min,可见,本实施例提出的更新方式相较于现有的更新方式,更新速率得到有效提升。141.进一步地,本实施例中,所述步骤s20之前,还包括:142.步骤s21:定位本地用于存储歌曲信息的目标曲库。143.在具体实现中,上述曲库更新设备可通过定位的方式锁定本地用于存储歌曲信息的目标曲库。144.步骤s22:对所述目标曲库中的歌曲列表进行备份,获得备份歌曲列表,并将所述备份歌曲列表作为本地曲库。145.在具体实现中,上述曲库更新设备可对已定位的目标曲库中的歌曲列表进行备份,然后将备份歌曲列表作为本地曲库以进行后续的曲库更新。由于是对备份歌曲列表进行更新,而用户的点唱歌曲操作针对的是目标曲库,因此并不会影响用户的点唱歌曲操作,例如,当用户选择的歌曲刚好是在进行更新的歌曲时,由于用户选择的歌曲是目标曲库中的歌曲,而歌曲更新的是备份歌曲列表,因此两者并不会冲突,有效提高了用户的使用体验。146.相应地,本实施例中,所述步骤s70之后,还包括:147.步骤s80:替换所述目标曲库中的歌曲列表为所述本地曲库,以完成曲库更新。148.在具体实现中,由于最终的目的是曲库更新,且进行更新的本地歌曲为备份歌曲列表,因此,上述曲库更新设备在完成对本地曲库的更新后,将该目标曲库中的歌曲列表替换为该本地曲库即可实现对目标曲库的更新,并且避免了用户点唱的歌曲为正在更新的歌曲导致歌曲无法演唱的问题,有效提高了用户的使用体验。149.应理解的是,若曲库更新过程中并不涉及下架歌曲,则在对新歌列表和待更新列表进行更新后,便可将目标曲库中的歌曲列表替换为本地曲库。150.此外,本发明实施例还提出一种存储介质,所述存储介质上存储有曲库更新程序,所述曲库更新程序被处理器执行时实现如上文所述的曲库更新方法的步骤。151.参照图6,图6为本发明曲库更新装置第一实施例的结构框图。152.如图6所示,本发明实施例提出的曲库更新装置包括:153.标识信息模块501,用于获取全量歌曲列表中各更新歌曲的标识信息。154.列表划分模块502,用于通过所述标识信息将所述全量歌曲列表划分为新歌列表和待更新列表。155.曲库更新模块503,用于基于所述新歌列表和所述待更新列表对本地曲库进行更新。156.本实施例方法首先获取全量歌曲列表,并获取全量歌曲列表中各更新歌曲的标识信息;然后通过标识信息将全量歌曲列表划分为新歌列表和待更新列表;最后基于新歌列表和待更新列表对本地曲库进行更新。本实施例通过标识信息将全量歌曲列表划分为新歌列表和待更新列表,然后通过新歌列表和待更新列表对本地曲库进行更新,相较于现有的曲库更新方式在循环更新歌曲时,需要依次判断解析到的各歌曲是否存在于曲库中,进而针对判断结果实现歌曲更新;但是,若需更新的歌曲数量过多,如10w首,则需要针对每首歌曲均进行上述判断逻辑,而每次判断逻辑均需要操作曲库,因此需要操作10w次曲库,从而存在因频繁操作曲库导致更新效率较低的问题。本实施例上述方式通过划分新歌列表和待更新列表进行曲库更新,无需依次判断全量歌曲中的更新歌曲是否在本地曲库中,有效减少了操作次数,提高了更新效率157.作为一种实施方式,所述列表划分模块502,还用于将所述标识信息在本地曲库中的更新歌曲列表确定为待更新列表;将所述标识信息不在所述本地曲库中的更新歌曲列表确定为新歌列表。158.作为一种实施方式,所述标识信息模块501,还用于在检测到本地曲库处于待更新状态时,从云端下载全量歌曲列表文件;解析所述全量歌曲列表文件中的所有歌曲,获得全量歌曲列表。159.作为一种实施方式,所述标识信息模块501,还用于在设备启动时,分别启动主线程和后台线程,其中,所述主线程用于响应点唱歌曲操作,所述后台线程用于静默更新所述本地曲库。160.基于本发明上述曲库更新装置第一实施例,提出本发明曲库更新装置的第二实施例。161.在本实施例中,所述曲库更新模块503,还用于基于所述新歌列表和所述待更新列表中的各更新歌曲的歌曲信息,分别构建与所述新歌列表及所述待更新列表对应的sql语句,其中,单个sql语句用于被执行时访问所述本地曲库并完成相应列表的更新操作后退出访问;分别执行所述新歌列表及所述待更新列表对应的sql语句,以对所述本地曲库进行更新。162.基于本发明上述曲库更新装置各实施例,提出本发明曲库更新装置的第三实施例。163.在本实施例中,所述曲库更新模块503,还用于下载下架歌曲文件,并解析所述下架歌曲文件中的所有歌曲,获得下架歌曲列表;对比所述下架歌曲列表与所述本地曲库中的歌曲列表,获得对比结果;基于所述对比结果,确定所述下架歌曲列表与所述本地曲库中歌曲列表的交集部分作为下架歌曲;删除所述本地曲库中的所述下架歌曲。164.作为一种实施方式,所述曲库更新模块503,还用于定位本地用于存储歌曲信息的目标曲库;对所述目标曲库中的歌曲列表进行备份,获得备份歌曲列表,并将所述备份歌曲列表作为本地曲库。165.相应地,所述曲库更新模块503,还用于替换所述目标曲库中的歌曲列表为所述本地曲库,以完成曲库更新。166.本发明曲库更新装置的具体实现方式可参照上述各方法实施例,此处不再赘述。167.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。168.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。169.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。170.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域:
:,均同理包括在本发明的专利保护范围内。当前第1页12当前第1页12
技术特征:
1.一种曲库更新方法,其特征在于,所述曲库更新方法包括以下步骤:获取全量歌曲列表,并获取所述全量歌曲列表中各更新歌曲的标识信息;通过所述标识信息将所述全量歌曲列表划分为新歌列表和待更新列表;基于所述新歌列表和所述待更新列表对本地曲库进行更新。2.如权利要求1所述的曲库更新方法,其特征在于,所述通过所述标识信息将所述全量歌曲列表划分为新歌列表和待更新列表的步骤,包括:将所述标识信息在本地曲库中的更新歌曲列表确定为待更新列表;将所述标识信息不在所述本地曲库中的更新歌曲列表确定为新歌列表。3.如权利要求2所述的曲库更新方法,其特征在于,所述基于所述新歌列表和所述待更新列表对本地曲库进行更新的步骤,包括:基于所述新歌列表和所述待更新列表中的各更新歌曲的歌曲信息,分别构建与所述新歌列表及所述待更新列表对应的sql语句,其中,单个sql语句用于被执行时访问所述本地曲库并完成相应列表的更新操作后退出访问;分别执行所述新歌列表及所述待更新列表对应的sql语句,以对所述本地曲库进行更新。4.如权利要求3所述的曲库更新方法,其特征在于,所述基于所述新歌列表和所述待更新列表对本地曲库进行更新的步骤之后,还包括:下载下架歌曲文件,并解析所述下架歌曲文件中的所有歌曲,获得下架歌曲列表;对比所述下架歌曲列表与所述本地曲库中的歌曲列表,获得对比结果;基于所述对比结果,确定所述下架歌曲列表与所述本地曲库中歌曲列表的交集部分作为下架歌曲;删除所述本地曲库中的所述下架歌曲。5.如权利要求4所述的曲库更新方法,其特征在于,所述通过所述标识信息将所述全量歌曲列表划分为新歌列表和待更新列表的步骤之前,还包括:定位本地用于存储歌曲信息的目标曲库;对所述目标曲库中的歌曲列表进行备份,获得备份歌曲列表,并将所述备份歌曲列表作为本地曲库;相应地,所述删除所述本地曲库中的所述下架歌曲的步骤之后,还包括:替换所述目标曲库中的歌曲列表为所述本地曲库,以完成曲库更新。6.如权利要求4所述的曲库更新方法,其特征在于,所述获取全量歌曲列表的步骤,包括:在检测到本地曲库处于待更新状态时,从云端下载全量歌曲列表文件;解析所述全量歌曲列表文件中的所有歌曲,获得全量歌曲列表。7.如权利要求1至6任一项所述的曲库更新方法,其特征在于,所述获取所述全量歌曲列表中各更新歌曲的标识信息的步骤之前,还包括:在设备启动时,分别启动主线程和后台线程,其中,所述主线程用于响应点唱歌曲操作,所述后台线程用于静默更新所述本地曲库。8.一种曲库更新装置,其特征在于,所述装置包括:标识信息模块,用于获取全量歌曲列表,并获取所述全量歌曲列表中各更新歌曲的标
识信息;列表划分模块,用于通过所述标识信息将所述全量歌曲列表划分为新歌列表和待更新列表;曲库更新模块,用于基于所述新歌列表和所述待更新列表对本地曲库进行更新。9.一种曲库更新设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的曲库更新程序,所述曲库更新程序配置为实现如权利要求1至7中任一项所述的曲库更新方法的步骤。10.一种存储介质,其特征在于,所述存储介质上存储有曲库更新程序,所述曲库更新程序被处理器执行时实现如权利要求1至7任一项所述的曲库更新方法的步骤。
技术总结
本发明涉及音频技术领域,公开了一种曲库更新方法、装置、设备及存储介质,该方法包括获取全量歌曲列表,并获取全量歌曲列表中各更新歌曲的标识信息;通过标识信息将全量歌曲列表划分为新歌列表和待更新列表;基于新歌列表和待更新列表对本地曲库进行更新。本发明通过标识信息将全量歌曲列表划分为新歌列表和待更新列表,然后通过新歌列表和待更新列表对本地曲库进行更新,相较于现有的曲库更新方式在循环更新歌曲时,依次判断解析到的各歌曲是否存在于曲库中,会因频繁操作导致更新效率低的问题。本发明上述方式无需依次判断全量歌曲中的更新歌曲是否在本地曲库中,有效减少了操作次数,提高了更新效率。提高了更新效率。提高了更新效率。
技术研发人员:王磊 于绞龙 张超锋 唐志会
受保护的技术使用者:北京雷客天地科技有限公司
技术研发日:2023.06.06
技术公布日:2023/9/12
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
