• <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>

    LRC歌詞原理和實現高仿Android網易云音樂

    大師好,我們是愛學啊,今天給大師帶來一篇關于LRC歌詞道理和在Android上若何實現歌詞逐行滾動的結果,逐字滾動下一篇文章講解。

    東西/原料

    • Android Studio

    結果圖

    1. 1

      相信大師都懂一張圖勝過千言萬語。

    2. 2

      結果和此刻市道上年夜部門播放器差不多,當然若是要運用到貿易項目中,必定還需要進行一些優化,例如:滾動結果有彈性,字體巨細,字體顏色等。

    什么是LRC歌詞

    1. 1

      LRC是英文Lyric(歌詞)的縮寫,常用作逐行歌詞擴展名。他是純文本文件,格局簡單,能實現歌詞逐行滾動;當然今朝業界年夜部門播放器都是在他的根本上心猿意馬制了,但根基道理一樣,當學完我們這篇文章后,大師也可以按照本身的需求心猿意馬制。

    LRC歌詞格局

    1. 1

      在實現歌詞功能前,必定需要搞大白LRC歌詞格局,例如:我們找了一段LRC歌詞:

    2. 2

      可以看到內容是用換行符朋分的,若是這些數據是經由過程接口返回,而不是直接返回一個LRC文件,那么這里面的換行符應該變為\n換行符,這一點我們也在課程中講解到了。

      每一行是一句歌詞;每一行歌詞又分為兩部門,中括號里面是當前這行歌詞的起頭時候,格局為分:秒:毫秒,有些歌詞可能沒有毫秒,只有秒;歌詞開首因為部門數據稱為LRC元數據,他是用來描述這個歌詞的,部門字段詮釋如下:

    3. 3

      前面這些字段按照分歧的播放器可能用的位置紛歧樣,我們課程中固然解析了這些字段,但也沒有效到。

    歌詞滾動道理

    1. 1

      將每行歌詞前面的時候解析后,轉為毫秒,如許播放器在播放的時辰可以獲取到播放時候,然后拿著時候查找當前時候對應哪一行歌詞,然后在界面上高亮這一行歌詞,或者做更多的處置,例如:字體增年夜等操作;就實現了歌詞逐行高亮;至于滾動分歧的平臺紛歧樣,滾動思緒是:獲取到當前時候所對應哪一行,然后我們必定能算出每一行歌詞高度,所以行*每一行高度就是滾動的高度。

    歌詞解析

    1. 1

      分歧的說話語法紛歧樣,我們這里先說思緒,我們的實現是Java說話。

      讀取該文件每一行,然后用]拆分,第二部門就是歌詞,第一部門繼續用:拆分,然后將三部門轉為毫秒;最后將這些信息保留到對象上。

      當然為了今后更好的擴展,因為歌詞格局良多,可以進行一些架構:

    歌詞繪制

    1. 1

      分歧的平臺也紛歧樣,我們這里是Android,所以繪制用Canvas。我們這里的思緒是:歌詞View的高度是固心猿意馬的,因為我們但愿當前行歌詞始終顯示到歌詞View中心,所以先算出View的中間高度,然后在該位置繪制當前行歌詞,這一步按照分歧的歌詞處置的邏輯也紛歧樣,但歌詞可分為兩類,一類是逐行,一類是逐字,對于逐行來說就直接繪制就行了,只是顏色,巨細紛歧樣罷了;逐字下一節講解;然后從當前行歌詞位置像前繪制歌詞,直到超出View頂部為止,在從當前行歌詞標的目的下歌詞繪制,直到超出View底部為止;當前你可以利用LinearLayout添加所有歌詞當前容器內,然后滾動。

    歌詞滾動

    1. 1

      Android中分歧的實現方式滾動體例也紛歧樣,若是是直接繪制,那么滾動其實就是繪制分歧行歌詞,給人的感受就是滾動了;若是是將所有歌詞添加到容器中,那么就可以利用容器默認的滾動;對于我們這里的實現滾動其實就是更改lineNumber值,例如;當前lineNumber為5,暗示當前播放的是第5行歌詞,經由過程用戶滾動的距離就能計較出當前滾動距離是哪一行,因為我們知道每一行高度所以可以計較出當前位置,滾動到的位置,然后利用屬性動畫滾動:

    2. 2

      到這里LRC歌詞View焦點功能根基就實現完當作了,若是要深切進修可以查看我們的【[Android開辟項目實戰我的云音樂](http://a.ixuea.com/o)】課程,或者在線電子書【[電子書](http://a.ixuea.com/K)】;同時大師也可以存眷我們的微信公家號【ixuea666】和Android開辟交流QQ群:702321063。

    • 發表于 2018-10-17 00:00
    • 閱讀 ( 670 )
    • 分類:其他類型

    你可能感興趣的文章

    相關問題

    0 條評論

    請先 登錄 后評論
    admin
    admin

    0 篇文章

    作家榜 ?

    1. xiaonan123 189 文章
    2. 湯依妹兒 97 文章
    3. luogf229 46 文章
    4. jy02406749 45 文章
    5. 小凡 34 文章
    6. Daisy萌 32 文章
    7. 我的QQ3117863681 24 文章
    8. 華志健 23 文章

    聯系我們:uytrv@hotmail.com 問答工具
  • <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>
    久久久久精品国产麻豆