千里冰封
JAVA 浓香四溢
posts - 151,comments - 2801,trackbacks - 0

在做了歌词同步显示以后,还必须得做歌词搜索的动作,搜索分两种,一种是在搜索本地的特定目录,当然这些目录是可以设置的,还有一种是当本地搜索不到的时候,再到网络上去进行进一步的搜索,当然这些搜索都是起了一个新的线程在做的,否则就会卡到主线程播不出音乐来了.

说到歌词的搜索,就得说说什么样的歌词才叫匹配了呢,这个时候,就得提起前面写的标签读取器了,第一步是从音频文件里面读取标签,根据标签里的歌手名和歌曲名去本地搜索完全匹配的歌词文件,如果没有,则第二步,根据标签里面的歌曲名去本地搜索匹配的歌词文件,如果这一步还没有找到,就可能是确实没有这首歌的歌词,也可能是这首歌的标签是不合法的或者标签是错的,第三步就取歌曲的文件名做为歌曲名再去搜索一遍,如果还没有搜到,则说明本地没有了,这个时候再去网络上重复以上三个步骤,如果还没有搜索,那就直接显示歌词名在歌词面板了.

当然现在已经实现了当搜索到了歌词以后,会自动和歌曲文件相关联,也就是说以后再播到这首歌的时候就不会在本地到处搜索匹配的歌词了,而是直接关联的歌词文件里面读取歌词.这个一来可以提高效率,二来也可以人工指定匹配的歌词文件,人工要指定其实很简单,只要把你想关联的歌词文件拖放到歌词显示窗口就可以了,这个时候就自动关联到当前正在播放的歌曲了.当然你也可以点击在线搜索自己指定歌手名和歌曲名,然后双击要下载的歌词进行关联.所有的关联都是为了在播放歌曲的时候提高效率.

在网上搜索的过程中,使用了httpClient3.0做为网络连接的工具,因为它封装性非常好,并且方便易用,可以在很大的程度上摸拟浏览器的行为.在搜到了歌词以后,用正则表达式把里面的地址取出来,这一切就差不多了.




尽管千里冰封
依然拥有晴空

你我共同品味JAVA的浓香.
posted on 2008-01-15 13:22 千里冰封 阅读(3058) 评论(3)  编辑  收藏 所属分类: JAVASE

FeedBack:
# re: YOYOPlayer开发手记(五)歌词搜索
2008-01-16 12:17 | ae
做得很不错啊。我提点意见:打开播放器听歌曲时,如果用右标点击播放器的最小化图标,歌曲会暂停播放,这一点给人感觉不怎么好,是线程问题吗?  回复  更多评论
  
# re: YOYOPlayer开发手记(五)歌词搜索
2008-02-11 14:33 | 九州
同意楼上兄弟说法,有这种现象,不过已经相当佩服兄弟了,呵呵  回复  更多评论
  
# re: YOYOPlayer开发手记(五)歌词搜索
2008-02-13 18:31 | java学习
想问一下,能把网上如何下载歌词的原理说详细一些吗?学习中......  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: