4
isMeidaplay (标记是否安装 Windows Media player 播放器)的值,为 true,表示已经安装,
为 false,表示未安装。
2.2 调用 Real Player 播放器的具体代码 .
2.3 获取 LRC 歌词的行数
在实现音乐试听中的同步显示歌词功能时, 需要获取歌词的行数。 要获取歌词的行数, 首先
需要对歌词文件的格式有所了解,下面我们先来看看歌词文件的格式。 例如“改变自己”的
歌词文件的内容
说明:在 LRC 歌词中,通过 [MM:SS.MS] 指定时间、 [ar: 演唱者名 ]指定演唱者、 [ti: 歌曲名 ]
指定歌曲名、 [al: 专辑名 ]指定专辑名、 [by: 歌词编辑者 ]指定歌词编辑者、 [Offset:MS] 用于调
整整个歌词文件的时间标签值,单位是毫秒,可以是负值,也是 LRC 歌词格式中,唯一可
以使用负值的时间标签。在 LRC 歌词格式中,每一个中括号对代表一行歌词。这时要获取
歌词的行数,就可以获取中括号对的个数,具体的实现过程如下。
(1)读取歌词文件的内容,并保存到一个字符串中。
(2)通过 java.util.StringTokenizer 类分析歌词内容字符串, 获取歌词的行数, 关键代码如下:
代码位置: src\com\action\SongAction.java
StringTokenizer st=new StringTokenizer(content,"\\[*\\]"); //分析字符串中共包括多少个中括
号对“ []”
lineNumber=st.countTokens(); //返回分析的结果
java.util.StringTokenizer 类用于分析字符串,并将字符串分解成可被独立使用的单词。该类
有以下两个常用的构造方法。
StringTokenizer(String s)
该构造方法为字符串 s 构造一个分析器。 使用默认的分隔集合,即空格符(若干个空格被看
做一个空格) 、换行符、回车符、
2.4 应用 jspSmartUpload 组件实现文件重命名的上传
为了实现歌词同步显示, 需要保证歌词文件和歌曲文件同名 (例如, 歌曲文件名为 gbzj.mp3,
歌词文件的名称就应该是 gbzj.lrc )。这样,在上传歌词文件时,就需要将歌词文件重命名。
在应用 jspSmartUpload 组件上传文件时,可以通过文件上传组件的 getFile() 方法获取 Files
类的对象,然后通过 Files 类的 getFile()方法获取文件集合中指定的文件对象,再通过
该文件对象的 saveAs()方法将文件进行重命名上传即可。关键代码如下:
upFile.getFiles().getFile(0).saveAs("/music/"+fileName);
3 数据库设计
本实例数据库采用 SQL Server2000 数据库,数据库名称为 db_onLineMusic ,在该数据库中
包含 3 个数据表,分别是管理员信息表 tb_manager(由管理员 ID 、管理员名和密码 3 个字
段组成)、歌曲类别信息表 tb_songType(由类别 ID 和类别名称两个字段组成)和歌曲信息
表 tb_song。由于管理员信息表和歌曲类别信息表的结构比较简单,这里将不作具体介绍。
下面将给出歌曲信息表的表结构,如表所示。