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

          在做了歌詞同步顯示以后,還必須得做歌詞搜索的動作,搜索分兩種,一種是在搜索本地的特定目錄,當然這些目錄是可以設置的,還有一種是當本地搜索不到的時候,再到網絡上去進行進一步的搜索,當然這些搜索都是起了一個新的線程在做的,否則就會卡到主線程播不出音樂來了.

          說到歌詞的搜索,就得說說什么樣的歌詞才叫匹配了呢,這個時候,就得提起前面寫的標簽讀取器了,第一步是從音頻文件里面讀取標簽,根據標簽里的歌手名和歌曲名去本地搜索完全匹配的歌詞文件,如果沒有,則第二步,根據標簽里面的歌曲名去本地搜索匹配的歌詞文件,如果這一步還沒有找到,就可能是確實沒有這首歌的歌詞,也可能是這首歌的標簽是不合法的或者標簽是錯的,第三步就取歌曲的文件名做為歌曲名再去搜索一遍,如果還沒有搜到,則說明本地沒有了,這個時候再去網絡上重復以上三個步驟,如果還沒有搜索,那就直接顯示歌詞名在歌詞面板了.

          當然現在已經實現了當搜索到了歌詞以后,會自動和歌曲文件相關聯,也就是說以后再播到這首歌的時候就不會在本地到處搜索匹配的歌詞了,而是直接關聯的歌詞文件里面讀取歌詞.這個一來可以提高效率,二來也可以人工指定匹配的歌詞文件,人工要指定其實很簡單,只要把你想關聯的歌詞文件拖放到歌詞顯示窗口就可以了,這個時候就自動關聯到當前正在播放的歌曲了.當然你也可以點擊在線搜索自己指定歌手名和歌曲名,然后雙擊要下載的歌詞進行關聯.所有的關聯都是為了在播放歌曲的時候提高效率.

          在網上搜索的過程中,使用了httpClient3.0做為網絡連接的工具,因為它封裝性非常好,并且方便易用,可以在很大的程度上摸擬瀏覽器的行為.在搜到了歌詞以后,用正則表達式把里面的地址取出來,這一切就差不多了.




          盡管千里冰封
          依然擁有晴空

          你我共同品味JAVA的濃香.
          posted on 2008-01-15 13:22 千里冰封 閱讀(3083) 評論(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學習
          想問一下,能把網上如何下載歌詞的原理說詳細一些嗎?學習中......  回復  更多評論
            
          主站蜘蛛池模板: 石泉县| 岳池县| 庐江县| 奎屯市| 吉隆县| 宿州市| 喜德县| 水城县| 海淀区| 莱州市| 美姑县| 金堂县| 拜城县| 龙州县| 康定县| 威信县| 宜章县| 威海市| 玉山县| 闽侯县| 晋城| 收藏| 保亭| 通许县| 兴隆县| 张掖市| 西峡县| 古交市| 文山县| 资兴市| 长白| 荆州市| 新竹市| 罗定市| 宁晋县| 富裕县| 咸丰县| 江孜县| 富平县| 隆林| 基隆市|