CN105224308A - 用于mtp设备建立播放列表的方法和装置 - Google Patents
用于mtp设备建立播放列表的方法和装置 Download PDFInfo
- Publication number
- CN105224308A CN105224308A CN201510508377.2A CN201510508377A CN105224308A CN 105224308 A CN105224308 A CN 105224308A CN 201510508377 A CN201510508377 A CN 201510508377A CN 105224308 A CN105224308 A CN 105224308A
- Authority
- CN
- China
- Prior art keywords
- file
- handle
- media file
- mtp
- equipment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种用于MTP设备建立播放列表的方法,根据指定的文件类型,从MTP设备获取所述文件类型的媒体文件的文件句柄。根据所述文件句柄,获取所述文件类型的媒体文件中的每个媒体文件的父目录句柄。根据所述父目录句柄进行排序,获得所述播放列表,所述排序将相同文件夹的不同媒体文件连续排列,以及保存所述播放列表。该方法简化了播放列表的建立流程,提高了建立速度,而且不会对MTP设备上的媒体文件造成损害。
Description
技术领域
本发明涉及计算机技术领域,具体涉及用于MTP设备建立播放列表的方法和装置。
背景技术
在播放系统播放媒体文件之前,需要对设备进行媒体文件的搜索,将符合的媒体文件加入到播放列表中,然后根据播放列表进行播放。对文件的搜索方法一般是从根目录开始,然后逐层遍历。如果文件满足条件就加入播放列表。例如,在将U盘插入到PC机时,在PC机上建立播放列表。
微软提出了MTP(MediaTransferProtocol,媒体传输协议),支持MTP协议的电子设备能够基于MTP协议提供的接口进行媒体文件传输。通过MTP接口访问MTP设备上的文件夹和文件,不是直接操作MTP设备上的物理文件,而是首先为MTP设备上的文件系统构筑一个虚拟文件系统,然后通过MTP命令和该虚拟文件系统进行通讯获取数据,以此保证MTP设备上的文件不受影响。通过MTP协议能够改善MTP设备的文件访问体验。
然而,在MTP设备建立播放列表仍然需要遍历各个目录。如果MTP设备内的文件夹或者文件比较多,则会进行长时间的搜索,使得用户体验不好。
发明内容
有鉴于此,本发明提供一种用于MTP设备建立播放列表的方法和装置,通过MTP协议访问MTP设备上的媒体文件,获取相关的媒体文件数据用以生成媒体文件的播放列表。
根据本发明的第一方面,提供一种用于MTP设备建立播放列表的方法,在所述MTP设备上存储有媒体文件,所述方法包括:根据指定的文件类型,从MTP设备获取所述文件类型的媒体文件的文件句柄;根据所述文件句柄,获取所述文件类型的媒体文件中的每个媒体文件的父目录句柄;根据所述父目录句柄进行排序,获得所述播放列表,所述排序将相同文件夹的不同媒体文件连续排列;以及保存所述播放列表。
优选地,针对不同的文件类型,重复执行从MTP设备获取所述文件类型的媒体文件的文件句柄和获取所述文件类型的媒体文件中的每个媒体文件的父目录句柄的步骤。
优选地,所述从MTP设备获取所述文件类型的媒体文件的文件句柄包括:向所述MTP设备发送获取所述文件类型的媒体文件的文件句柄的指令;以及解析所述MTP设备返回的数据,获取所述文件类型的媒体文件的文件句柄。
优选地,针对所述文件类型,在一次指令中获取所述MTP设备的指定文件夹或所有文件夹下的所有媒体文件的文件句柄。
优选地,在向所述MTP设备发送获取所述文件类型的媒体文件的文件句柄的指令时,使用MTP命令中的得到对象句柄指令GetObjectHandles,设置参数3为0XFFFFFFFF,所述参数3表示获取指定设备下面的所有对象。
优选地,所述获取所述文件类型的媒体文件中的每个媒体文件的父目录句柄包括:向所述MTP设备发送获取所述媒体文件的父目录句柄的指令;以及解析所述MTP设备返回的数据,获取所述媒体文件的父目录句柄。
优选地,向所述MTP设备发送获取所述媒体文件的父目录句柄的指令时,输入MTP设备命令中的得到对象信息指令GetObjectInfo,设置参数1为所述媒体文件的文件句柄。
优选地,针对所述文件类型的每个媒体文件,分别获取所述媒体文件的父目录句柄。
优选地,在获取媒体文件的父目录句柄的步骤和排序的步骤之间,还包括:将所述媒体文件的父目录句柄转换成文件夹序号,其中,在排序步骤中,采用所述文件夹序号进行排序。
优选地,在所述MTP设备或外部设备上保存所述播放列表。
优选地,所述MTP设备和所述外部设备通过有线或无线方式连接。
优选地,所述MTP设备和所述外部设备通过USB接口或蓝牙或wifi连接。
优选地,所述媒体文件为MTP协议内所规定的全部播放类型。
优选地,还包括:从所述MTP设备上获取所述媒体文件的属性数据,并将属性数据添加到所述播放列表里。
根据本发明的第二方面,提供一种用于MTP设备建立播放列表的装置,包括:文件句柄获取模块,用于根据指定的文件类型,从MTP设备获取所述文件类型的媒体文件的文件句柄;父目录句柄获取模块,用于根据所述文件句柄,获取所述文件类型的媒体文件中的每个媒体文件的父目录句柄;排序模块,用于根据所述父目录句柄进行排序,获得所述播放列表,所述排序将相同文件夹的不同媒体文件连续排列;存储模块,用于存储所述播放列表。
优选地,所述文件句柄获取模块还用于针对不同的文件类型,从MTP设备获取所述文件类型的媒体文件的文件句柄。
优选地,所述文件句柄获取模块包括:第一指令发送单元,用于向所述MTP设备发送获取所述文件类型的媒体文件的文件句柄的指令;以及第一指令解析单元,用于解析所述MTP设备返回的数据,获取所述文件类型的媒体文件的文件句柄。
优选地,所述文件句柄获取模块针对所述文件类型,在一次指令中获取所述MTP设备的指定文件夹或所有文件夹下的所有媒体文件的文件句柄。
优选地,所述第一指令发送单元发送得到对象句柄指令GetObjectHandles,设置参数3为0XFFFFFFFF,其中所述参数3表示获取指定设备下面的所有对象。
优选地,所述父目录句柄获取模块包括:第二指令发送单元,用于向所述MTP设备发送获取所述媒体文件的父目录句柄的指令;第二指令解析单元,用于解析所述MTP设备返回的数据,获取所述媒体文件的父目录句柄。
优选地,所述第二指令发送单元发送得到对象信息指令GetObjectInfo,设置参数1为所述媒体文件的文件句柄。
优选地,所述父目录句柄获取模块针对所述文件类型的每个媒体文件,分别获取所述媒体文件的父目录句柄。
优选地,所述排序模块还包括:转换模块,用于将所述媒体文件的父目录句柄转换成文件夹序号,其中,在排序模块中,采用所述文件夹序号进行排序。
优选地,在所述MTP设备或外部设备上保存所述播放列表。
优选地,所述MTP设备和所述外部设备通过有线或无线方式连接。
优选地,所述MTP设备和所述外部设备通过USB接口或蓝牙或wifi连接。
优选地,所述媒体文件为MTP协议内所规定的全部播放类型。
优选地,还包括:属性获取模块,用于从所述MTP设备上获取所述媒体文件的属性数据,并将属性数据添加到所述播放列表里。
根据本发明的实施例,提供一种用于MTP设备建立播放列表的方法。根据指定的文件类型,从MTP设备获取所述文件类型的媒体文件的文件句柄。根据所述文件句柄,获取所述文件类型的媒体文件中的每个媒体文件的父目录句柄。根据所述父目录句柄进行排序,获得所述播放列表,所述排序将相同文件夹的不同媒体文件连续排列,以及保存所述播放列表。该方法简化了播放列表的建立流程,提高了建立速度,而且不会对MTP设备上的媒体文件造成损害。
附图说明
通过参照以下附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1是本发明实施例的建立播放列表方法的流程图;
图2是本发明实施例的应用场景的示意图;
图3是本发明实施例的SOC设备和MTP设备的交互示意图;
图4是本发明另一实施例的建立播放列表方法的流程图;
图5是本发明实施例的建立播放列表的装置的结构示意图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
附图中的流程图、框图图示了本发明实施例的系统、方法、装置的可能的体系框架、功能和操作,流程图和框图上的方框可以代表一个模块、程序段或仅仅是一段代码,所述模块、程序段和代码都是用来实现规定逻辑功能的可执行指令。也应当注意,所述实现规定逻辑功能的可执行指令可以重新组合,从而生成新的模块和程序段。因此附图的方框以及方框顺序只是用来更好的图示实施例的过程和步骤,而不应以此作为对发明本身的限制。
本文中的SOC设备和外部设备是指可以播放媒体文件的设备,包括但不限于MTP设备。MTP设备是指支持MTP协议的各种设备,包括但不限于按键手机、智能手机、计算机,PDA,游戏机,IPTV、IPAD、电子书、机顶盒等具有存储能力和处理能力的电子设备。SOC设备、外部设备以及MTP设备可以基于Windows、Android、WindowsPhone、IOS、Linux等操作系统。
图1示出了建立播放列表的方法一个实施例流程图。
步骤101、从MTP设备上获取多个媒体文件的文件句柄。
其中,媒体文件是根据编码规则将媒体数据编码生成的二进制文件。媒体文件的格式有很多,包括视频类文件、音频类文件、图片类文件。常用的视频类文件和音频类文件格式有AVI(AudioVideoInterleaved,音频视频交错格式)、MOV(Moviedigitalvideotechnology,数码电影视频技术的文件格式)、WAV(WindowsWave,窗波音频格式)、MPEG(MovingPictureExpertsGroup,动态图像专家组)及MP3/MP4(MovingPictureExpertsGroupAudioLayerIII/IV,动态影像专家压缩标准音频层面3/4)等,图形类文件有BMP(Bitmap,位图)、GIF(((GraphicsInterchangeFormat,图像互转格式)))、DIB(设备无关位图文件)、JPG(JointPhotographicExpertsGROUP,平台无关图像格式)等。
不同类型的媒体文件主要通过扩展名识别。在MTP设备上检索媒体文件时,可以指定某一种文件扩展名。更进一步地,可以指定检索的起始目录。例如,用户希望获得MTP设备上目录为”movies”的指定类型的媒体文件,则向MTP设备输入检索指令GetObjectHandles(得到对象句柄),目录的参数为“movies”所代表的handle,,,文件类型参数为“MP3”所指定的类型码。根据该检索指令,MTP设备或MTP设备上的应用检索本地设备或媒体数据库,查询“movies”目录文件类型为“MP3”的媒体文件,包括“movies”子目录下的所有满足条件的媒体文件,以及将满足条件的媒体文件的文件句柄返回给用户。
文件句柄是操作系统对文件、文件夹、套接字和管道的命名,每次打开一个上述对象时操作系统指定一个句柄命名作为对它的唯一识别。它是一个四字节或8字节的整型数据。
例如,用户希望获得MTP设备上的所有的媒体文件,则向MTP设备输入检索指令GetObjectHandles(得到对象句柄),将参数3设置为0XFFFFFFFF,表示获取所有文件句柄。如果需要检索所有格式的媒体文件,则多次使用检索指令GetObjectHandles(得到对象句柄),分别检索类型为“AVI”,“MOV”,“MP3”,“MPEG”等文件格式中的媒体文件,得到满足条件的所有媒体文件。下面表1中用16进制数表示文件句柄。
表1文件句柄
文件类型 | 文件句柄 |
MP3 | B1 67 02 00 |
MP3 | B2 67 02 00 |
MP3 | B3 67 02 00 |
MP3 | B4 67 02 00 |
步骤102、根据文件句柄获取所述媒体文件父目录句柄。
具体地,在本步骤中,对在步骤101中获得的多个媒体文件的多个文件句柄进行解析,获得每个媒体文件的文件句柄,根据每个文件句柄,向MTP设备发送获取文件句柄对应的父目录句柄的指令,由MTP设备执行所述指令,并将结果数据返回给用户。例如,获取fileHandle1的父目录句柄,向MTP设备发送获取指令Getobjectinfo(得到对象信息),指令中文件句柄的输入参数“B1670200”,则MTP设备或MTP设备上的应用检索媒体数据库或检索本地设备,查询到fileHandle1的父目录名称为“PA”所对应的句柄,“PA”对应的文件句柄为“01000200”,则将“PA”或“01000200”作为父目录句柄返回给用户。以此类推,获得fileHandle2到fileHandle4的父目录句柄。表2、表3分别是文件句柄和父目录文件句柄的对应表、文件句柄和父目录名称对应表。
表2文件句柄和父目录对应表
文件类型 | 文件句柄 | 父目录句柄 |
MP3 | B1 67 02 00 | 01 00 02 00 |
MP3 | B2 67 02 00 | 01 00 02 00 |
MP3 | B3 67 02 00 | 01 00 02 01 |
MP3 | B4 67 02 00 | 01 00 02 00 |
表3文件句柄和父目录名称对应表
文件类型 | 文件句柄 | 父目录名称 |
MP3 | B1 67 02 00 | PA |
MP3 | B2 67 02 00 | PA |
MP3 | B3 67 02 00 | PB |
MP3 | B4 67 02 00 | PA |
步骤103、根据父目录句柄进行排序,建立播放列表。
在步骤102中,分别获得了文件句柄和父目录的文件句柄以及父目录的名称的对应表。由上表可知,多个媒体文件可以包含在相同的目录下(((目录名或目录的文件句柄相同))),但在检索的时候,可能按照文件类型进行统一检索。例如检索“movies”下的所有“MP3”格式文件,子目录“PA”下的媒体文件在上表中没有排在一起,中间被其他目录文件分隔。因此,在本步骤中,根据父目录句柄进行排序。例如,可以按照数字大小或者字符的ASCII(AmericanStandardCodeforInformationInterchange,美国信息交换标准代码)码表排序,由此生成播放列表。如表2经过排序调整为表4,图3经过排序调整为表5。
表4文件句柄和父目录对应表
文件类型 | 文件句柄 | 父目录句柄 |
MP3 | B1 67 02 00 | 01 00 02 00 |
MP3 | B2 67 02 00 | 01 00 02 00 |
MP3 | B4 67 02 00 | 01 00 02 00 |
MP3 | B3 67 02 00 | 01 00 02 01 |
表5文件句柄和父目录名称对应表
文件类型 | 文件句柄 | 父目录名称 |
MP3 | B1 67 02 00 | PA |
MP3 | B2 67 02 00 | PA |
MP3 | B4 67 02 00 | PA |
MP3 | B3 67 02 00 | PB |
步骤104、保存播放列表。播放列表可以在MTP设备或SOC设备上保存,用以系统显示和媒体文件播放。
在一个可选的实施方式里,可以定义顺序号作为父目录序号,唯一标识一个文件夹,并根据父目录序号进行排序,将父目录句柄或父目录名称相同的文件句柄排列在一起。如下图所示:
表6文件句柄和父目录名称对应表
文件类型 | 文件句柄 | 父目录序号 |
MP3 | B1 67 02 00 | 1 |
MP3 | B2 67 02 00 | 1 |
MP3 | B4 67 02 00 | 1 |
MP3 | B3 67 02 00 | 2 |
经过排序生成播放列表和MTP设备上播放列表的层级关系和原始目录结构一致。
在一个优选的实施方式里,MTP设备将媒体文件的常用的信息,比如歌曲名、文件大小、播放时长、专辑、歌手、类别等常用信息保存在了媒体数据库里,在终端设备端发送信息检索指令,根据文件句柄获取每个文件句柄对应的属性数据,并将属性数据添加到播放列表里用以按照不同的分类组织和显示媒体文件。表7是一个增加了分类数据的播放列表的示例。
表7属性对应表
图1是一个应用场景的例子,用户通过计算机操作相连的手机,在计算机上可以通过MTP协议访问手机的文件系统。计算机和手机可以是有线连接,也可以是无线连接。优选地,PC机和智能手机通过USB连接,或者PC和智能手机通过蓝牙连接。
更具体地,图2显示了SOC设备和MTP设备交互的过程。
步骤301、SOC设备发送获取文件句柄的命令。
具体地,SOC设备向MTP设备上发送的检索指令,包括检索的媒体格式,检索的起始目录等。例如,检索目录为”movies”的“MP3”的文件。SOC设备向MTP设备输入检索指令GetObjectHandles(得到对象句柄),并且包含与目录和媒体文件格式相关的上述参数。
步骤302、MTP设备搜索本地媒体文件。
具体地,MTP设备识别检索指令,检索媒体库或检索本地设备,获取满足条件媒体文件列表。根据媒体文件列表得到每个媒体文件对应的文件句柄。
步骤303、SOC设备接收MTP设备返回的所有媒体文件的文件句柄。
在本步骤中,接收步骤302的媒体文件的句柄列表。每个文件句柄的位数固定,可以按照固定位数分隔获得文件句柄。例如,步骤302返回的文件句柄列表为:B1670200B2670200B3670200B4670200,则获得FileHandle1=B1670200,FileHandle2=B2670200,FileHandle3=B3670200,FileHandle4=B4670200。
步骤304、SOC设备循环读取文件句柄,判断是否已经读到最后一条,如果已经读完,则跳到步骤308,否则顺序执行步骤305、306、307。
步骤305、SOC设备发送获取文件句柄父目录的指令。
具体地,在本步骤中,对读取的文件句柄,向MTP设备发送获取父目录句柄指令。例如,获取fileHandle1的父目录文件句柄,向MTP设备输入获取指令GetObjectInfo(得到对象信息),输入参数“B1670200”。
步骤306、MTP设备根据文件句柄查询对应的父目录的文件句柄或目录名称。例如,MTP设备或MTP设备上的应用检索本地媒体库或检索本地设备,查询到fileHandle1的父目录“PA”所对应的句柄,“PA”对应的文件句柄为“01000200”。
步骤307、SOC设备接收MTP设备返回的父目录的文件句柄或目录名称。具体地,SOC设备将接收到的父目录的文件句柄或目录名称和对应的文件句柄保存在本地数据结构中。
步骤308、SOC设备对父目录的文件句柄或目录名称进行排序生成播放列表。具体地,将本地保存的数据结构里的数据进行排序,排好序后,保证同一目录下的媒体文件不会被其他的目录文件分隔,最终MTP设备下的媒体文件保存成一个二维的数据结构,在系统显示时,按照目录层级进行显示,和原始的目录层级保持一致。
步骤309、保存播放列表。和图1的步骤104相同,这里就不再赘述。
优选地,当SOC设备和MTP设备连接中断后,所述播放列表依然保存在缓存里,但此时文件句柄指向的文件不可获取。只有当SOC设备或建立播放列表的应用关闭时,播放列表才从缓存区内删除。在MTP设备和终端之间的通信连接不稳定时,短时保留播放列表避免每次都重新创建所述列表。
图3的实施例说明了根据指定媒体文件类型,一次指令执行中,获取多个媒体文件中的每个媒体文件的文件句柄,以及根据每个媒体文件的文件句柄获得父目录句柄。
图4示出了建立播放列表的方法的另一个实施例流程图。
步骤401、向MTP设备发送获取指定媒体文件类型的文件句柄获取的指令。上文提到,所述媒体文件格式包括“AVI”,“MOV”,“MP3”,“MPEG”,“DIB”等。在一次指令中,向MTP设备发送获取一种媒体文件类型的文件句柄获取的指令,例如发送“MP3”的文件句柄获取指令。
步骤402、接收返回数据,循环读取每个文件句柄。接收MTP设备执行的文件句柄获取指令的执行结果,获得多个媒体文件的文件句柄,分别读取每个媒体文件的文件句柄。
步骤403、向MTP设备发送获取指定文件句柄对应的父目录的文件句柄的指令。具体地,根据每个文件的文件句柄,发送获取对应的父目录的文件句柄的指令。
步骤404、接收父目录的文件句柄。接收MTP设备执行父目录句柄获取指令的执行结果,获得父目录的文件句柄。
步骤405、判断是否已经读取所有的文件句柄。在本判断中,如果已经处理完所有的文件句柄,则跳出本循环执行步骤406,否则执行步骤402,处理下一个文件句柄。
步骤406、判断是否处理所述全部媒体文件类型。在本判断中,判断是否已经处理所有的预定媒体类型的文件句柄,如果是,则跳出循环体,如果否,则跳转到步骤401,处理下一种媒体文件类型。
步骤407、根据所述文件夹的文件句柄进行排序,建立所述播放列表。和图1的步骤103相同,这里就不再赘述。
步骤408、保存播放列表。和图1的步骤104相同,这里就不再赘述。
图4的实施例进一步说明了可以获取多种媒体文件类型的每个媒体文件的文件句柄,以及根据每个媒体文件的文件句柄获得父目录句柄。
作为对本发明方法的实现,图5示出了实现本发明方法的一个对应装置实施例的结构示意图,且上述装置能够应用于SOC设备中。
如图5所示,所述装置50和一个MTP设备连接,通过MTP协议接口进行通讯,包括文件句柄获取模块51,父目录句柄获取模块52、排序模块53和存储模块54,
文件句柄获取模块51,用于和MTP设备建立会话,从MTP设备上获取多个媒体文件的文件句柄。优选地,句柄获取模块51包括第一指令发送单元(未示出)和第一指令解析单元(未示出),第一指令单元向所述MTP设备发送获取所述文件类型的媒体文件的文件句柄的指令,第一指令解析单元用于解析所述MTP设备返回的数据,获取所述多个媒体文件的所述文件句柄。所述文件句柄获取模块针对所述文件类型,在一次指令中获取所述MTP设备的指定文件夹或所有文件夹下的所有媒体文件的文件句柄。同时所述文件句柄获取模块针对不同的文件类型,在多次指令中获取所述MTP设备的指定文件夹或所有文件夹下的所有媒体文件的文件句柄。
父目录句柄获取模块52,用于根据所述文件句柄,获取所述文件类型的媒体文件中的每个媒体文件的父目录句柄。优选地,包括第二指令发送单元(未示出),用于向所述MTP设备发送获取所述媒体文件的父目录句柄的指令;第二指令解析单元(未示出),用于解析所述MTP设备返回的数据,获取所述媒体文件的父目录句柄。父目录句柄获取模块52针对所述文件类型的每个媒体文件,分别获取所述媒体文件的父目录句柄。
排序模块53,用于对于所述多个媒体文件,根据所述父目录句柄进行排序,建立所述播放列表。所述播放列表在装置和MTP设备的通信中断后,依然保留在存储器中。当MTP设备频繁连接所述装置时候,保留播放列表能够避免多次重建播放列表。排序模块53还包括:转换模块,用于将所述媒体文件的父目录句柄转换成文件夹序号,其中,在排序模块中,采用所述文件夹序号进行排序。
存储模块54,用于存储播放列表,所述播放列表可以存储在SOC设备或MTP设备上。
优选地,第一指令发送单元发送的获取文件句柄的指令为GetObjectHandles(得到对象句柄)命令,设置参数3为0XFFFFFFFF,其中所述参数3表示获取指定设备下面的所有对象。
优选地,所述父目录句柄获取模块包括:第二指令发送单元,用于向所述MTP设备发送获取所述媒体文件的父目录句柄的指令;第二指令解析单元,用于解析所述MTP设备返回的数据,获取所述媒体文件的父目录句柄。
优选地,所述父目录句柄获取模块针对所述文件类型的每个媒体文件,分别获取所述媒体文件的父目录句柄。
优选地,所述排序模块还包括:转换模块,用于将所述媒体文件的父目录句柄转换成文件夹序号,其中,在排序模块中,采用所述文件夹序号进行排序。
优选地,在所述MTP设备或外部设备上保存所述播放列表。
优选地,所述MTP设备和所述外部设备通过有线或无线方式连接。
优选地,所述MTP设备和所述外部设备通过USB接口或蓝牙或wifi连接。
优选地,所述媒体文件为MTP协议内所规定的全部播放类型。
优选地,还包括:属性获取模块,用于从所述MTP设备上获取所述媒体文件的属性数据,并将属性数据添加到所述播放列表里。
应当理解,装置50中的各个模块和单元与图1,图4描述的方法中的各个步骤相对应。由此上文中对方法的操作和特征的描述也适用于本装置的各个模块和单元,这里就不再赘述。装置可以作为SOC设备的一个应用存储在SOC设备中,也可以直接将装置的功能预实现在SOC设备的操作系统中。
根据本发明的实施例的方法,根据指定的文件类型,从MTP设备获取所述文件类型的媒体文件的文件句柄。根据所述文件句柄,获取所述文件类型的媒体文件中的每个媒体文件的父目录句柄。根据所述父目录句柄进行排序,获得所述播放列表,所述排序将相同文件夹的不同媒体文件连续排列,以及保存所述播放列表。该方法简化了播放列表的建立流程,提高了建立速度,而且不会对MTP设备上的媒体文件造成损害。
显然,本领域技术人员应该明白,上述的本发明的各单元或各步骤可以通过软件、硬件或软硬件结合实现,软件包括JAVA、C/C++/C#、SQL等各种编程语言编码程序,硬件逻辑组件可包括:现场可编程的门阵列(FPGA)、程序和应用专用集成电路(PASIC/ASIC)、程序和应用专用标准产品(((PSSP/ASSP)))、片上系统(SOC)、以及复杂的可编程逻辑设备(CPLD)。软硬件结合则通过两方面组合和优化实现预定的功能。
它们可以集中在单个计算装置上,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (28)
1.一种用于MTP设备建立播放列表的方法,在所述MTP设备上存储有媒体文件,所述方法包括:
根据指定的文件类型,从MTP设备获取所述文件类型的媒体文件的文件句柄;
根据所述文件句柄,获取所述文件类型的媒体文件中的每个媒体文件的父目录句柄;
根据所述父目录句柄进行排序,获得所述播放列表,所述排序将相同文件夹的不同媒体文件连续排列;以及
保存所述播放列表。
2.根据权利要求1所述的方法,其中,针对不同的文件类型,重复执行从MTP设备获取所述文件类型的媒体文件的文件句柄和获取所述文件类型的媒体文件中的每个媒体文件的父目录句柄的步骤。
3.根据权利要求1所述的方法,其中,所述从MTP设备获取所述文件类型的媒体文件的文件句柄包括:
向所述MTP设备发送获取所述文件类型的媒体文件的文件句柄的指令;以及
解析所述MTP设备返回的数据,获取所述文件类型的媒体文件的文件句柄。
4.根据权利要求3所述的方法,其中,针对所述文件类型,在一次指令中获取所述MTP设备的指定文件夹或所有文件夹下的所有媒体文件的文件句柄。
5.根据权利要求3所述的方法,其中,在向所述MTP设备发送获取所述文件类型的媒体文件的文件句柄的指令时,使用MTP命令中的得到对象句柄指令GetObjectHandles,设置参数3为0XFFFFFFFF,所述参数3表示获取指定设备下面的所有对象。
6.根据权利要求1所述的方法,其中,所述获取所述文件类型的媒体文件中的每个媒体文件的父目录句柄包括:
向所述MTP设备发送获取所述媒体文件的父目录句柄的指令;
以及解析所述MTP设备返回的数据,获取所述媒体文件的父目录句柄。
7.根据权利要求6所述的方法,其中,向所述MTP设备发送获取所述媒体文件的父目录句柄的指令时,输入MTP设备命令中的得到对象信息指令GetObjectInfo,设置参数1为所述媒体文件的文件句柄。
8.根据权利要求1所述的方法,其中,针对所述文件类型的每个媒体文件,分别获取所述媒体文件的父目录句柄。
9.根据权利要求1所述的方法,在获取媒体文件的父目录句柄的步骤和排序的步骤之间,还包括:
将所述媒体文件的父目录句柄转换成文件夹序号,
其中,在排序步骤中,采用所述文件夹序号进行排序。
10.根据权利要求1所述的方法,其中,在所述MTP设备或外部设备上保存所述播放列表。
11.根据权利要求10所述的方法,其中,所述MTP设备和所述外部设备通过有线或无线方式连接。
12.根据权利要求11所述的方法,其中,所述MTP设备和所述外部设备通过USB接口或蓝牙或WIFI连接。
13.根据权利要求1所述的方法,其中,所述媒体文件为MTP协议内所规定的全部播放类型。
14.根据权利要求1所述的方法,还包括:从所述MTP设备上获取所述媒体文件的属性数据,并将属性数据添加到所述播放列表里。
15.一种用于MTP设备建立播放列表的装置,包括:
文件句柄获取模块,用于根据指定的文件类型,从MTP设备获取所述文件类型的媒体文件的文件句柄;
父目录句柄获取模块,用于根据所述文件句柄,获取所述文件类型的媒体文件中的每个媒体文件的父目录句柄;
排序模块,用于根据所述父目录句柄进行排序,获得所述播放列表,所述排序将相同文件夹的不同媒体文件连续排列;
存储模块,用于存储所述播放列表。
16.根据权利要求15所述的方法,所述文件句柄获取模块还用于针对不同的文件类型,从MTP设备获取所述文件类型的媒体文件的文件句柄。
17.根据权利要求15所述的装置,其中,所述文件句柄获取模块包括:
第一指令发送单元,用于向所述MTP设备发送获取所述文件类型的媒体文件的文件句柄的指令;以及
第一指令解析单元,用于解析所述MTP设备返回的数据,获取所述文件类型的媒体文件的文件句柄。
18.根据权利要求17所述的装置,其中,所述文件句柄获取模块针对所述文件类型,在一次指令中获取所述MTP设备的指定文件夹或所有文件夹下的所有媒体文件的文件句柄。
19.根据权利要求17所述的装置,其中,所述第一指令发送单元发送得到对象句柄指令GetObjectHandles,设置参数3为0XFFFFFFFF,其中所述参数3表示获取指定设备下面的所有对象。
20.根据权利要求15所述的装置,其中,所述父目录句柄获取模块包括:
第二指令发送单元,用于向所述MTP设备发送获取所述媒体文件的父目录句柄的指令;
第二指令解析单元,用于解析所述MTP设备返回的数据,获取所述媒体文件的父目录句柄。
21.根据权利要求20所述的装置,其中,所述第二指令发送单元发送得到对象信息指令GetObjectInfo,设置参数1为所述媒体文件的文件句柄。
22.根据权利要求16所述的装置,其中,所述父目录句柄获取模块针对所述文件类型的每个媒体文件,分别获取所述媒体文件的父目录句柄。
23.根据权利要求16所述的装置,所述排序模块还包括:
转换模块,用于将所述媒体文件的父目录句柄转换成文件夹序号,
其中,在排序模块中,采用所述文件夹序号进行排序。
24.根据权利要求16所述的装置,其中,在所述MTP设备或外部设备上保存所述播放列表。
25.根据权利要求24所述的装置,其中,所述MTP设备和所述外部设备通过有线或无线方式连接。
26.根据权利要求24所述的装置,其中,所述MTP设备和所述外部设备通过USB接口或蓝牙或wifi连接。
27.根据权利要求16所述的装置,其中,所述媒体文件为MTP协议内所规定的全部播放类型。
28.根据权利要求16所述的装置,还包括:属性获取模块,用于从所述MTP设备上获取所述媒体文件的属性数据,并将属性数据添加到所述播放列表里。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510508377.2A CN105224308B (zh) | 2015-08-18 | 2015-08-18 | 用于mtp设备建立播放列表的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510508377.2A CN105224308B (zh) | 2015-08-18 | 2015-08-18 | 用于mtp设备建立播放列表的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105224308A true CN105224308A (zh) | 2016-01-06 |
CN105224308B CN105224308B (zh) | 2019-05-03 |
Family
ID=54993306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510508377.2A Active CN105224308B (zh) | 2015-08-18 | 2015-08-18 | 用于mtp设备建立播放列表的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105224308B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106682243A (zh) * | 2017-02-28 | 2017-05-17 | 深圳天珑无线科技有限公司 | 一种浏览方法和浏览设备 |
CN107168905A (zh) * | 2017-05-11 | 2017-09-15 | 广东欧珀移动通信有限公司 | 一种文件显示方法、装置、存储介质及移动终端 |
CN107562372A (zh) * | 2017-08-01 | 2018-01-09 | 广东欧珀移动通信有限公司 | 一种电子设备及其数据管理方法、计算机可读存储介质 |
CN111291003A (zh) * | 2020-01-21 | 2020-06-16 | 浙江工商大学 | 数据读取方法、装置和电子设备 |
US11977456B2 (en) * | 2016-11-23 | 2024-05-07 | 2236008 Ontario Inc. | File system framework |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3651421B1 (en) * | 2014-05-19 | 2023-05-10 | Huawei Technologies Co., Ltd. | Multimedia display method, apparatus, and device |
-
2015
- 2015-08-18 CN CN201510508377.2A patent/CN105224308B/zh active Active
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11977456B2 (en) * | 2016-11-23 | 2024-05-07 | 2236008 Ontario Inc. | File system framework |
CN106682243A (zh) * | 2017-02-28 | 2017-05-17 | 深圳天珑无线科技有限公司 | 一种浏览方法和浏览设备 |
CN107168905A (zh) * | 2017-05-11 | 2017-09-15 | 广东欧珀移动通信有限公司 | 一种文件显示方法、装置、存储介质及移动终端 |
CN107168905B (zh) * | 2017-05-11 | 2020-08-21 | Oppo广东移动通信有限公司 | 一种文件显示方法、装置、存储介质及移动终端 |
CN107562372A (zh) * | 2017-08-01 | 2018-01-09 | 广东欧珀移动通信有限公司 | 一种电子设备及其数据管理方法、计算机可读存储介质 |
CN107562372B (zh) * | 2017-08-01 | 2021-04-27 | Oppo广东移动通信有限公司 | 一种电子设备及其数据管理方法、计算机可读存储介质 |
CN111291003A (zh) * | 2020-01-21 | 2020-06-16 | 浙江工商大学 | 数据读取方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105224308B (zh) | 2019-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105224308A (zh) | 用于mtp设备建立播放列表的方法和装置 | |
US9904694B2 (en) | NoSQL relational database (RDB) data movement | |
CN107590174B (zh) | 页面访问方法及装置 | |
CN104283567A (zh) | 一种名称数据的压缩、解压缩方法及设备 | |
CN111680489B (zh) | 目标文本的匹配方法和装置、存储介质及电子设备 | |
CN103440243A (zh) | 一种教学资源推荐方法及其装置 | |
CN106897280A (zh) | 数据查询方法及装置 | |
CN114356851A (zh) | 数据文件的存储方法、装置、电子设备及存储介质 | |
CN103136172A (zh) | 输出试题的方法和装置 | |
CN110389932B (zh) | 电力文件自动分类方法及装置 | |
EP3193260A2 (en) | Encoding program, encoding method, encoding device, decoding program, decoding method, and decoding device | |
CN105282206A (zh) | 网站资源文件的处理方法、装置和系统 | |
CN110765328A (zh) | 一种数据处理的方法、装置及存储介质 | |
CN107608995A (zh) | 一种产品链对象数据库的建立、查询方法、装置和系统 | |
CN114398883B (zh) | 演示文稿生成方法、装置、计算机可读存储介质及服务器 | |
CN105991400B (zh) | 一种群组搜索方法及其设备 | |
CN114780712A (zh) | 一种基于质量评价的新闻专题生成方法及装置 | |
US10372694B2 (en) | Structured information differentiation in naming | |
Parsola et al. | Mobile application for storage and retrieval of e-learning videos using hadoop | |
US8812432B2 (en) | Large-scale data processing apparatus, method, and non-transitory tangible machine-readable medium thereof | |
CN112529646A (zh) | 一种商品分类方法和装置 | |
CN110929143A (zh) | 一种绘本识别方法、系统及电子设备 | |
KR102308893B1 (ko) | 인식 메타를 이용한 컨텐츠 운용 방법 및 이를 지원하는 서비스 장치 | |
CN103019665A (zh) | 一种单据打开方法及装置 | |
KR102650634B1 (ko) | 워드 클라우드를 이용한 해시태그 추천 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |