比較完整的android MP3 LRC歌詞滾動高亮顯示(附原始碼)

NO IMAGE
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

1.以前的滾動只是安行來重新整理,現在不是按行來滾動了,其實就是在一定時間內整體往上移動,比如說在1S內重新整理10次,由於認得肉眼看起來像是滾動。

關鍵程式碼如下:
複製程式碼 程式碼如下:
        float plus = currentDunringTime == 0 ? 30
                : 30
                        (((float) currentTime – (float) sentenctTime) / (float) currentDunringTime)
                        * (float) 30;
        // 向上滾動 這個是根據歌詞的時間長短來滾動,整體上移
        canvas.translate(0, -plus);

plus就是每次移動的大小,它就是根據歌詞所持續的時間來計算的,時間越長,plus的值就越小。具體的看程式碼了。

下面就是獲取歌詞的資訊:
複製程式碼 程式碼如下:
 public void updateIndex(long time) {
  this.currentTime = time;
  // 歌詞序號
  index = mLyric.getNowSentenceIndex(time);
  if (index != -1) {
   Sentence sen = Sentencelist.get(index);
   sentenctTime = sen.getFromTime();
   currentDunringTime = sen.getDuring();
  }
 }

以下就是跟新執行緒:
複製程式碼 程式碼如下:
 class UIUpdateThread implements Runnable {
  long time = 100; // 滾動速度
  public void run() {
   while (mp.isPlaying()) {
    lyricView.updateIndex(mp.getCurrentPosition());
    mHandler.post(mUpdateResults);
    try {
     Thread.sleep(time);
    } catch (InterruptedException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
  }
 }

project連結:點選下載

您可能感興趣的文章:

Android 基於RecyclerView實現的歌詞滾動自定義控制元件

相關文章

Android 開發 最新文章