具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
除非上下文另有特定清楚的描述,本发明中的元件和组件,数量既可以单个的形式存在,也可以多个的形式存在,本发明并不对此进行限定。本发明中的步骤虽然用标号进行了排列,但并不用于限定步骤的先后次序,除非明确说明了步骤的次序或者某步骤的执行需要其他步骤作为基础,否则步骤的相对次序是可以调整的。可以理解,本文中所使用的术语“和/或”涉及且涵盖相关联的所列项目中的一者或一者以上的任何和所有可能的组合。
如图1所示,在一个实施例中,提供了一种本地音乐与库内音乐匹配的方法,该方法以应用于能运行音乐播放器的终端中进行举例说明,这些终端包括但不限于各种台式计算机、个人数字助理、笔记本电脑、平板电脑、智能手机、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)或MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器等,该方法包括:
步骤102,从本地音乐文件中读取压缩信息。
该压缩信息是预先写入本地音乐文件中的对该本地音乐文件对应的音乐信息进行编码并压缩后的信息。音乐信息包括音乐基本信息和附带业务信息中的至少一种。其中,音乐基本信息包括音乐标识、音乐名称、专辑名称、下载地址链接、码率、P2P的种子文件和附加的额外标志等;附带业务信息则包括专辑图片、歌手图片、音乐对应的视频名称等。
在一个实施例中,在步骤102中,可从本地音乐文件的ID3标签中读取压缩信息。具体的,压缩信息预先保存在本地音乐文件的ID3标签中,ID3是一种容器,通常应用于MP3格式的音频文件中,ID3标签一般位于音频文件的开头或者末尾的若干字节内。ID3标签通常可用于存放音乐的一些基本信息,比如音乐名称、专辑名称等,除了这些信息外,ID3标签还具有一些扩展字段,压缩信息则可预先保存在本地音乐文件的ID3标签中的扩展字段中。
步骤104,对压缩信息进行解压。
步骤106,将解压后的信息进行恢复处理,得到原始的音乐信息。
在一个实施例中,步骤106包括:对解压后的信息串进行分解,得到对音乐信息编码后的内容;对编码后的内容进行解码,得到原始的音乐信息。
本实施例中,在将音乐信息编码后的内容进行压缩前,可将音乐信息进行串行化处理再压缩,这样,对解压后的信息进行的恢复处理可以是反串行化处理,对压缩信息解码后则进行反串行化处理,从而得到原始的音乐信息。
串行化是指将一个对象的当前状态转换为连续的字节流的过程,转换后得到的字节流可以存储到介质(如文件、内存缓冲区等)中或者以二进制方式进行传输。反串行化是串行化的逆过程,可以通过反串行化从连续的字节数据重新构建一个与原始对象状态相同的对象。
步骤108,将音乐信息恢复到数据库内。
具体的,可将得到的音乐信息恢复到音乐播放器的数据库内,以更新数据库中与本地音乐文件的路径对应的音乐信息。在得到本地音乐文件的音乐信息后,即可在音乐播放器的播放列表中显示本地音乐文件的音乐信息,比如显示音乐名称、专辑名称、专辑图片等。进一步的,还可将音乐信息提交至服务器,服务器则根据该音乐信息即可匹配到对应的音乐,进而得到匹配的音乐的服务信息,比如漫游、分享和点歌等,再将这些服务信息返给终端进行显示。
本实施例中,可直接从本地音乐文件中读取压缩信息,进而得到本地音乐文件的音乐信息。由于不需要设置专门的服务器来存放音频指纹或者音乐文件的MD5信息,也不需要将这些信息上传到服务器进行处理,从而降低了硬件成本和网络成本。由于音乐信息的恢复不需要依赖于服务器,因此能够实现离线的音乐信息恢复,使得终端在离线状态下也能显示完整的音乐信息。
在一个实施例中,在步骤102之前还可对音乐文件进行处理,具体包括:
步骤202,获取音乐文件和音乐文件对应的音乐信息。
可从服务器获取在线播放的音乐列表,从音乐列表中选择需下载为本地音乐文件的音乐。在一个实施例中,步骤202包括:获取音乐标识,根据音乐标识获取音乐信息,该音乐信息中包含下载地址链接;根据下载地址链接下载音乐文件。音乐标识用于唯一标识一个音乐文件,具体的,在服务器中存储了音乐文件和对应的音乐信息,音乐信息中包含音乐标识和下载地址链接。因此终端在播放某个音乐文件时,可从服务器获取音乐文件的音乐标识,并从服务器获取与音乐标识对应的音乐信息,由于音乐信息中包含下载地址链接,因此终端可根据下载地址链接下载服务器上的音乐文件。
步骤204,对音乐信息进行串行化处理。
在一个实施例中,步骤204包括:对音乐信息进行编码,将编码后的内容拼接成信息串。由于音乐信息中的内容有多种,比如有音乐名称、专辑名称、下载地址链接等,对于不同的内容都需要进行编码,比如音乐名称为“时间煮雨”,编码后为:%e6%97%b6%e9%97%b4%e7%85%ae%e9%9b%a8;
又如下载地址链接为“http://music.qq.com/qqmusic.html?id=4825889”,编码后为:http%3a%2f%2fmusic.qq.com%2fqqmusic.html%3fid%3d4825889。在对音乐信息中的不同内容进行编码后,将编码后的串拼接起来。例如,可采用形如“name1=value1&name2=value2”的格式进行拼接,其中,name为音乐信息的内容的名称,value为对其进行编码后的串。不同内容之间用符号&拼接起来。
步骤206,将串行化处理后的音乐信息进行压缩。
步骤208,将压缩后的音乐信息写入音乐文件中并存储为本地音乐文件。
在一个实施例中,步骤208中,可将压缩后的音乐信息写入到音乐文件的ID3标签中并存储为本地音乐文件。由于音乐文件的ID3标签所占用的字节有限,因此对于串行化处理后的音乐信息先进行压缩,以便能够节省存储空间,具体的,压缩后的音乐信息可写入到ID3标签的扩展字段中。
本实施例中,在从服务器下载音乐文件存储为本地音乐文件之前,将音乐文件对应的音乐信息写入到了音乐文件中,这样,要获取音乐文件的音乐信息时,可直接从音乐文件中获取,而不需要从服务器获取,从而节省了硬件成本和网络成本。并且能够使得本地音乐与库内音乐的匹配能够在离线状态下实现。
如图3所示,在一个实施例中,还提供了一种本地音乐与库内音乐匹配的装置,包括:
压缩信息读取模块302,用于从本地音乐文件中读取压缩信息。
该压缩信息是预先写入本地音乐文件中的对该本地音乐文件对应的音乐信息进行编码并压缩后的信息。音乐信息包括音乐基本信息和附带业务信息中的至少一种。其中,音乐基本信息包括音乐标识、音乐名称、专辑名称、下载地址链接、码率、P2P的种子文件和附加的额外标志等;附带业务信息则包括专辑图片、歌手图片、音乐对应的视频名称等。
解压模块304,用于对压缩信息进行解压。
第一处理模块306,用于将解压后的信息进行恢复处理,得到原始的音乐信息。
数据恢复模块308,用于将音乐信息恢复到数据库内。
具体的,数据恢复模块308可用于将得到的音乐信息恢复到音乐播放器的数据库内,以更新数据库中与本地音乐文件的路径对应的音乐信息。在得到本地音乐文件的音乐信息后,即可在音乐播放器的播放列表中显示本地音乐文件的音乐信息,比如显示音乐名称、专辑名称、专辑图片等。进一步的,还可将音乐信息提交至服务器,服务器则根据该音乐信息即可匹配到对应的音乐,进而得到匹配的音乐的服务信息,比如漫游、分享和点歌等,再将这些服务信息返给终端进行显示。
在一个实施例中,压缩信息读取模块302用于从本地音乐文件的ID3标签中读取压缩信息。具体的,压缩信息预先保存在本地音乐文件的ID3标签中,ID3是一种容器,通常应用于MP3格式的音频文件中,ID3标签一般位于音频文件的开头或者末尾的若干字节内。ID3标签通常可用于存放音乐的一些基本信息,比如音乐名称、专辑名称等,除了这些信息外,ID3标签还具有一些扩展字段,压缩信息则可预先保存在本地音乐文件的ID3标签中的扩展字段中。
在一个实施例中,如图4所示,第一处理模块306包括:
分解模块306a,用于对解压后的信息串进行分解,得到对音乐信息编码后的内容。
解码模块306b,用于对编码后的内容进行解码,得到原始的音乐信息。
在另一个实施例中,如图5所示,本地音乐与库内音乐匹配的装置还包括:
文件获取模块310,用于获取音乐文件和音乐文件对应的音乐信息。
具体的,文件获取模块310可从服务器获取在线播放的音乐列表,从音乐列表中选择需下载为本地音乐文件的音乐。
第二处理模块312,用于对音乐信息进行串行化处理。
压缩模块314,用于将串行化处理后的音乐信息进行压缩。
信息写入模块316,用于将压缩后的音乐信息写入音乐文件中并存储为本地音乐文件。
在一个实施例中,信息写入模块316用于将压缩后的音乐信息写入到音乐文件的ID3标签中并存储为本地音乐文件。由于音乐文件的ID3标签所占用的字节有限,因此对于串行化处理后的音乐信息先进行压缩,以便能够节省存储空间,具体的,信息写入模块316可用于将压缩后的音乐信息写入到ID3标签的扩展字段中。
在一个实施例中,如图6所示,文件获取模块310包括:
音乐信息获取模块310a,用于获取音乐标识,根据音乐标识获取音乐信息,该音乐信息中包含下载地址链接。
音乐下载模块310b,用于根据下载地址链接下载音乐文件。
在一个实施例中,如图7所示,第二处理模块312包括:
编码模块312a,用于对音乐信息进行编码。
拼接模块314b,用于将编码后的内容拼接成信息串。
图8为能实现本发明实施例的一个计算机系统1000的模块图。该计算机系统1000只是一个适用于本发明的计算机环境的示例,不能认为是提出了对本发明的使用范围的任何限制。计算机系统1000也不能解释为需要依赖于或具有图示的示例性的计算机系统1000中的一个或多个部件的组合。
图8中示出的计算机系统1000是一个适合用于本发明的计算机系统的例子。具有不同子系统配置的其它架构也可以使用。例如有大众所熟知的台式机、笔记本、个人数字助理、智能电话、平板电脑、便携式媒体播放器、机顶盒等类似设备可以适用于本发明的一些实施例。但不限于以上所列举的设备。
如图8所示,计算机系统1000包括处理器1010、存储器1020和系统总线1022。包括存储器1020和处理器1010在内的各种系统组件连接到系统总线1022上。处理器1010是一个用来通过计算机系统中基本的算术和逻辑运算来执行计算机程序指令的硬件。存储器1020是一个用于临时或永久性存储计算程序或数据(例如,程序状态信息)的物理设备。系统总线1020可以为以下几种类型的总线结构中的任意一种,包括存储器总线或存储控制器、外设总线和局部总线。处理器1010和存储器1020可以通过系统总线1022进行数据通信。其中存储器1020包括只读存储器(ROM)或闪存(图中都未示出),以及随机存取存储器(RAM),RAM通常是指加载了操作系统和应用程序的主存储器。
计算机系统1000还包括显示接口1030(例如,图形处理单元)、显示设备1040(例如,液晶显示器)、音频接口1050(例如,声卡)以及音频设备1060(例如,扬声器)。显示设备1040和音频设备1060是用于体验多媒体内容的媒体设备,例如,音频设备1060可用于在播放本地音乐文件时输出声音。
计算机系统1000一般包括一个存储设备1070。存储设备1070可以从多种计算机可读介质中选择,计算机可读介质是指可以通过计算机系统1000访问的任何可利用的介质,包括移动的和固定的两种介质。例如,计算机可读介质包括但不限于,闪速存储器(微型SD卡),CD-ROM,数字通用光盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁存储设备,或者可用于存储所需信息并可由计算机系统1000访问的任何其它介质。
计算机系统1000还包括输入装置1080和输入接口1090(例如,IO控制器)。用户可以通过输入装置1080,如键盘、鼠标、显示装置1040上的触摸面板设备,输入指令和信息到计算机系统1000中。输入装置1080通常是通过输入接口1090连接到系统总线1022上的,但也可以通过其它接口或总线结构相连接,如通用串行总线(USB)。
计算机系统1000可在网络环境中与一个或者多个网络设备进行逻辑连接。网络设备可以是个人电脑、服务器、路由器、智能电话、平板电脑或者其它公共网络节点。计算机系统1000通过局域网(LAN)接口1100或者移动通信单元1110与网络设备相连接。局域网(LAN)是指在有限区域内,例如家庭、学校、计算机实验室、或者使用网络媒体的办公楼,互联组成的计算机网络。WiFi和双绞线布线以太网是最常用的构建局域网的两种技术。WiFi是一种能使计算机系统1000间交换数据或通过无线电波连接到无线网络的技术。移动通信单元1110能在一个广阔的地理区域内移动的同时通过无线电通信线路接听和拨打电话。除了通话以外,移动通信单元1110也支持在提供移动数据服务的2G,3G或4G蜂窝通信系统中进行互联网访问。
应当指出的是,其它包括比计算机系统1000更多或更少的子系统的计算机系统也能适用于发明。例如,计算机系统1000可以包括能在短距离内交换数据的蓝牙单元,用于照相的图像传感器,以及用于测量加速度的加速计。
如上面详细描述的,适用于本发明的计算机系统1000能执行本地音乐与库内音乐匹配的方法的指定操作。计算机系统1000通过处理器1010运行在计算机可读介质中的软件指令的形式来执行这些操作。这些软件指令可以从存储设备1070或者通过局域网接口1100从另一设备读入到存储器1020中。存储在存储器1020中的软件指令使得处理器1010执行上述的本地音乐与库内音乐匹配的方法。此外,通过硬件电路或者硬件电路结合软件指令也能同样实现本发明。因此,实现本发明并不限于任何特定硬件电路和软件的组合。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。