在做了歌詞同步顯示以后,還必須得做歌詞搜索的動作,搜索分兩種,一種是在搜索本地的特定目錄,當然這些目錄是可以設置的,還有一種是當本地搜索不到的時候,再到網絡上去進行進一步的搜索,當然這些搜索都是起了一個新的線程在做的,否則就會卡到主線程播不出音樂來了.
說到歌詞的搜索,就得說說什么樣的歌詞才叫匹配了呢,這個時候,就得提起前面寫的標簽讀取器了,第一步是從音頻文件里面讀取標簽,根據標簽里的歌手名和歌曲名去本地搜索完全匹配的歌詞文件,如果沒有,則第二步,根據標簽里面的歌曲名去本地搜索匹配的歌詞文件,如果這一步還沒有找到,就可能是確實沒有這首歌的歌詞,也可能是這首歌的標簽是不合法的或者標簽是錯的,第三步就取歌曲的文件名做為歌曲名再去搜索一遍,如果還沒有搜到,則說明本地沒有了,這個時候再去網絡上重復以上三個步驟,如果還沒有搜索,那就直接顯示歌詞名在歌詞面板了.
當然現在已經實現了當搜索到了歌詞以后,會自動和歌曲文件相關聯,也就是說以后再播到這首歌的時候就不會在本地到處搜索匹配的歌詞了,而是直接關聯的歌詞文件里面讀取歌詞.這個一來可以提高效率,二來也可以人工指定匹配的歌詞文件,人工要指定其實很簡單,只要把你想關聯的歌詞文件拖放到歌詞顯示窗口就可以了,這個時候就自動關聯到當前正在播放的歌曲了.當然你也可以點擊”在線搜索”自己指定歌手名和歌曲名,然后雙擊要下載的歌詞進行關聯.所有的關聯都是為了在播放歌曲的時候提高效率.
在網上搜索的過程中,使用了httpClient3.0做為網絡連接的工具,因為它封裝性非常好,并且方便易用,可以在很大的程度上摸擬瀏覽器的行為.在搜到了歌詞以后,用正則表達式把里面的地址取出來,這一切就差不多了.
盡管千里冰封
依然擁有晴空
你我共同品味JAVA的濃香.
posted on 2008-01-15 13:22
千里冰封 閱讀(3080)
評論(3) 編輯 收藏 所屬分類:
JAVASE