基于usb存储设备的媒体库建立及更新方法

文档序号:8457321阅读:400来源:国知局
基于usb存储设备的媒体库建立及更新方法
【技术领域】
[0001]本发明涉及存储设备内容管理领域,特别涉及一种基于USB存储设备的媒体库建立及更新方法。
【背景技术】
[0002]Android系统开机和存储设备接入后,会扫描存储设备筛选出媒体文件、建立媒体信息库以供应用程序使用。Android系统首先被设计用于手机系统,手机存储空间很有限,存储卡也不存在频繁的插拔、所以MediaScanner模块完全能胜任这个工作。
[0003]目前,Android系统被广泛应用于智能电视、网络盒子等终端,这些终端支持USB存储设备的接入,而USB存储设备具有容量大、可频繁插拔的特点,此时若仍然使用Android系统原生的MediaScanner进行扫描,会出现文件扫描时间长、重复扫描等问题,其中扫描时间长会导致用户无法快速浏览媒体文件,而重复扫描会加剧系统负担、使系统出现卡顿的概率增加,这些问题极大的降低了用户体验。

【发明内容】

[0004]【要解决的技术问题】
[0005]本发明的目的是提供一种基于USB存储设备的媒体库建立及更新方法,以解决采用Android系统原生的MediaScanner进行扫描时扫描时间长的问题。
[0006]【技术方案】
[0007]本发明是通过以下技术方案实现的。
[0008]本发明涉及一种USB存储设备的媒体库建立及更新方法,该方法包括文件扫描流程和扫描信息提取流程,
[0009]所述文件扫描流程包括:
[0010]步骤Al:在USB存储设备中建立媒体库,所述媒体库的文件表至少包括视频文件表、音乐文件表、图片文件表和文件夹表;
[0011]步骤B1:对USB存储设备进行分区得到各个虚拟分区,按照虚拟分区内文件夹的最后修改时间设置虚拟分区的扫描优先级;
[0012]步骤Cl:根据扫描优先级依次对各个虚拟分区进行扫描,在每个虚拟分区扫描完成后检查媒体库是否有更新,如果媒体库有更新则发送更新通知,
[0013]所述扫描信息提取流程包括:
[0014]将文件扫描得到的文件夹信息和媒体文件信息写入媒体库。
[0015]作为一种优选的实施方式,所述步骤Al之前还包括:
[0016]步骤A2:判断USB存储设备是否初次接入,如果是初次接入则执行步骤Al,反之则执行步骤B2 ;
[0017]步骤B2:遍历媒体库,判断媒体库的每条数据项对应的文件是否存在,如果不存在则从媒体库中删除该文件对应的记录,判断每条数据项对应的文件信息是否有变化,如果有变化则根据文件信息更新媒体库中对应的记录;
[0018]步骤C2:对USB存储设备进行分区得到各个虚拟分区,按照虚拟分区内文件夹的最后修改时间和媒体文件的个数设置虚拟分区的扫描优先级,转入执行步骤Cl。
[0019]作为另一种优选的实施方式,所述对USB存储设备进行分区的方法包括:
[0020]设置最优化分区个数,扫描USB存储设备根目录获取一级目录列表,同时将扫描得到的媒体文件写入媒体库;
[0021]判断一级目录列表中的目录个数是否大于最优化分区个数,如果是则采用一级目录作为虚拟分区,否则采用逐级扫描的方式获取USB存储设备的各级子目录并选择目录个数大于或等于最优化分区个数的子目录作为虚拟分区。
[0022]作为另一种优选的实施方式,所述最优分区个数根据USB存储设备的存储空间大小和已用存储空间大小进行设置。
[0023]作为另一种优选的实施方式,述步骤Cl在对虚拟分区进行扫描时,判断虚拟分区中的文件夹是否满足第一判断条件、第二判断条件和第三判断条件,如果满足则标记该文件夹为待扫描文件夹,所述第一判断条件为文件夹及其父文件夹中均不包含媒体文件,所述第二判断条件为该文件夹的目录级数大于第一判断值,所述第三判断条件为该文件夹中的非媒体文件的个数与子文件夹个数的差值大于第二判断值,所述第一判断值的求解方法包括:统计文件夹所在虚拟分区中媒体文件个数减少最快的目录级数,选择最深的目录级数作为第一判断值;所述第二判断值为文件夹所在虚拟分区中不包含媒体文件的文件夹中的文件个数的平均值。
[0024]作为另一种优选的实施方式,所述步骤Cl之后还包括:
[0025]如果USB存储设备所接入的系统处于空闲状态,则从媒体库中读取步骤Cl中标记的待扫描文件夹进行扫描,扫描结束后,如果媒体库有更新,则发出更新通知。
[0026]作为另一种优选的实施方式,所述媒体文件包括视频文件、音乐文件和图片文件。
[0027]作为另一种优选的实施方式,所述步骤D2中按照虚拟分区内文件夹的最后修改时间和媒体文件的个数设置虚拟分区的扫描优先级的方法为:
[0028]根据媒体文件的个数对虚拟分区的优先级进行第一次排序;
[0029]根据文件夹的最后修改时间对对虚拟分区的优先级进行第二次排序,如果存在最后修改时间相同的文件夹,则按照第一次排序的结果确定最后修改时间相同的虚拟分区的顺序。
[0030]作为另一种优选的实施方式,所述根据媒体文件的个数对虚拟分区的优先级进行第一次排序的方法为:
[0031]视频文件个数多的虚拟分区具有高优先级;如果存在视频文件个数相同的虚拟分区,则视频文件个数相同的虚拟分区中,图片文件个数多的虚拟分区具有高优先级;如果视频文件个数、图片文件个数均相同时,则视频文件个数、图片文件个数均相同的虚拟分区中,音乐文件个数多的虚拟分区具有高优先级。
[0032]作为另一种优选的实施方式,所述媒体文件信息包括媒体文件的名称、路径、大小和修改时间,所述文件夹信息包括文件夹的最后修改时间、文件夹中包含的媒体文件个数、文件夹中包含的非媒体文件的个数、文件夹的子文件夹中包含的媒体文件的个数。
[0033]【有益效果】
[0034]本发明提出的技术方案具有以下有益效果:
[0035](I)本发明将扫描过程进行了分解,利用虚拟分区的方式扫描USB存储设备,用户无需等待USB存储设备被完全扫描完就可以访问最近添加到USB存储设备中的媒体文件,在构建虚拟分区的过程中,本发明对USB存储设备的根目录采用逐级扫描,因此能够快速识别USB存储设备根目录的媒体文件。
[0036](2)本发明在扫描USB存储设备的过程中将无需扫描的路径剔除并使扫描过程能够从不太可能存储媒体文件的存储路径中快速退出,因此本发明从最有可能存储媒体文件的路径优先进行扫描,因此扫描更有效率。
[0037](3)本发明的扫描过程与媒体文件信息提取过程在不同的线程中,能够充分利用(PU资源。因此,本发明能够有效减少整体的扫描时间,增强了扫描过程中的用户体验。
【附图说明】
[0038]图1为本发明的实施例提供的文件扫描流程的流程图。
[0039]图2为本发明的实施例提供的扫描信息提取流程的流程图
【具体实施方式】
[0040]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图,对本发明的【具体实施方式】进行清楚、完整的描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例,也不是对本发明的限制。基于本发明的实施例,本领域普通技术人员在不付出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
[0041]本发明实施例提供一种基于USB存储设备的媒体库建立及更新方法,该方法包括文件扫描流程和扫描?目息提取流程,在本实施例中,文件扫描流程和扫描?目息提取流程可以并行执行,其中扫描信息提取流程主要包括将文件扫描流程扫描得到的文件夹信息和媒体文件信息写入媒体库,具体地,文件夹信息包括文件夹的最后修改时间、文件夹中包含的媒体文件个数、文件夹中包含的非媒体文件的个数、文件夹的子文件夹中包含的媒体文件的个数,另外,媒体文件包括视频文件、图片文件和音乐文件,非媒体文件指的是除视频文件、图片文件和音乐文件以外的文件。图1为本发明实施例提供的文件扫描流程的流程图,图2为本发明的实施例提供的扫描信息提取流程的流程图,如图1所示,该文件扫描流程包括步骤Sll至步骤S20,下面分别对上述步骤进行详细说明。
[0042]步骤Sll:判断USB存储设备是否初次接入,如果是初次接入则执行步骤S14,反之则执行步骤S12。
[0043]具体地,当USB存储设备与智能电视连接后,首先判断USB存储设备是否初次接入,如果是初次接入则执行步骤S14,反之则执行步骤S12。
[0044]步骤S12:遍历媒体库,根据媒体库的每条数据项对应的文件信息更新媒体库中的媒体文件信息。
[0045]步骤S12包括遍历媒体库,判断媒体库的每条数据项对应的文件是否存在,如果不存在则从媒体库中删除该文件对应的记录,判断每条数据项对应的文件信息是否有变化,如果有变化则根据文件信息更新媒体库中对应的记录,具体地,步骤S12遍历数据库中的文件夹表、视频文件表、音乐文件表、图片文件表,判断各个文件表中的文件是否依然存在以及是否需要更新,如果某个文件表中的某个文件不存在,则在数据库中删除该文件对应的数据信息。如果某个文件表中的某个文件的创建时间和数据库中记录的不同而且该文件的大小也与数据库中记录的不同,那么在数据库中标示该文件的媒体文件信息需要更新并执行媒体文件信息提取流程更新该文件的媒体文件信息,否则直接在数据库中更新文件信息。
[0046]步骤S13:对USB存储设备进行分区,并按照虚拟分区内文件夹的最后修改时间和媒体文件的个数设置各个虚拟分区的优先级,执行完后转入执行步骤S16。
[0047]具体地,步骤S13对USB存储设备进行分区得到各个虚拟分区,并按照虚拟分区内文件夹的最后修改时间和媒体文件的个数设置虚拟分区的扫描优先级,步骤S13执行完后转入执行步骤S16。
[0048]步骤S13中,对USB存储设备进行分区的方法包括如下步骤:
[0049]首先设置最优化分区个数,扫描USB存储设备根目录获取一级目录列表,同时将扫描得到的媒体文件写入媒体库,最优分区个数根据USB存储设备的存储空间大小和已用存储空间大小进行设置,另外,也可以由用户设置最优化分区个数;
[0050]最后判断一级目录列表中的目录个数是否大于最优化分区个数,如果是则采用一级目录作为虚拟分区,否则采用逐级扫描的方式获取USB存储设备的各级子目录并选择目录个数大于或等于最优
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1