Android開(kāi)發(fā) 歌詞(僅作記錄)

關(guān)于MP3標(biāo)簽

MP3文件本身只有音頻信息,諸如標(biāo)題帆锋、歌手珍逸、專輯等等信息統(tǒng)統(tǒng)是沒(méi)有的逐虚。然而在windows資源管理器中查看mp3文件,或者用播放器時(shí)能看到這些信息谆膳,就是MP3標(biāo)簽的功勞了叭爱。MP3標(biāo)簽有多種格式,但是沒(méi)有一項(xiàng)國(guó)際標(biāo)準(zhǔn)漱病,也即是說(shuō)沒(méi)有統(tǒng)一的標(biāo)準(zhǔn)买雾。不同類型的標(biāo)簽,其結(jié)構(gòu)杨帽、大小漓穿、存儲(chǔ)的信息都不同。

1.ID3v1 Tag

這是比較早期的一種標(biāo)簽注盈,大部分軟硬件晃危,包括window都可以識(shí)別。它存儲(chǔ)在mp3文件的最后老客,長(zhǎng)度固定為128字節(jié)僚饭,以“TAG”標(biāo)記開(kāi)頭。用UltraEdit等軟件可以很容易看到這一點(diǎn)胧砰。這128自己又被分為固定大小的幾段鳍鸵,分別存儲(chǔ)歌手,專輯朴则,評(píng)論权纤,歌曲類型等最基本的信息钓简。由于128字節(jié)的限制,ID3v1標(biāo)簽中沒(méi)有歌詞信息汹想;更為致命的一個(gè)缺點(diǎn)是外邓,ID3v1標(biāo)簽位于mp3文件的結(jié)尾處,大概當(dāng)時(shí)的設(shè)計(jì)者沒(méi)有預(yù)料到互聯(lián)網(wǎng)技術(shù)的爆發(fā)古掏,使得這種標(biāo)簽在流媒體大行其道的今天變得有些尷尬:你得等整個(gè)文件都緩沖完畢才能得到曲目信息损话。但是,簡(jiǎn)單和兼容仍是它最大的優(yōu)點(diǎn) :)

2.ID3v2 Tag

這是ID3v1之后若干年提出的一項(xiàng)新的標(biāo)簽格式槽唾,有多個(gè)子版本丧枪,常見(jiàn)的是v2.3.0. 曾經(jīng)看到有人說(shuō)ID3v2放在mp3文件的開(kāi)頭是因?yàn)镮D3v1放在結(jié)尾而別無(wú)選擇,這是不對(duì)的庞萍,下面我還要再說(shuō)這個(gè)問(wèn)題拧烦。很大程度上是因?yàn)樯厦嫣岬降腎D3v1放在結(jié)尾的缺點(diǎn),放在開(kāi)頭的話可以在流媒體中發(fā)揮優(yōu)勢(shì)钝计。(事實(shí)上恋博,這個(gè)標(biāo)簽的設(shè)計(jì)者為了獲得更大程度的方便,允許在文件結(jié)尾也放置ID3v2標(biāo)簽私恬,但在ID3v1之前债沮,以提高從結(jié)尾開(kāi)始查找的速度)

ID3v2標(biāo)簽的改進(jìn)不止如此。它極大地?cái)U(kuò)展了標(biāo)簽的容量本鸣,是變長(zhǎng)的疫衩,最大可達(dá)大約256MB(它用28bit來(lái)存儲(chǔ)標(biāo)簽大小,2^28)荣德。這個(gè)數(shù)字大的驚人闷煤,可以預(yù)計(jì),這個(gè)標(biāo)簽格式未來(lái)100年也不會(huì)過(guò)時(shí)_ 所以存儲(chǔ)歌詞當(dāng)然是小case了命爬。不僅如此曹傀,ID3v2甚至同時(shí)支持同步歌詞和不同步歌詞,也就是前面提到的ID3v2 Synchronized Lyrics 和 ID3v2 Unsynchronized Lyrics. 關(guān)于這兩種歌詞我會(huì)在后面詳細(xì)說(shuō)明饲宛。

3.APEv2 Tag

這是一種類似ID3v1的標(biāo)簽皆愉,其內(nèi)容也很簡(jiǎn)單,但大小不完全固定艇抠,一般稍大于ID3v1幕庐,內(nèi)容也豐富一些,比如有增益信息家淤。但是仍然不包含歌詞异剥。其位置在mp3本身數(shù)據(jù)的后面,ID3v1標(biāo)簽和其他存放在末尾的標(biāo)簽之前絮重。標(biāo)簽以"APETAGEX"開(kāi)頭冤寿。對(duì)于這個(gè)標(biāo)簽的認(rèn)識(shí)完全來(lái)自千千靜聽(tīng)歹苦,呵呵,不知道還有什么其他的播放器支持它督怜。

關(guān)于歌詞

mp3的歌詞分為兩種:外置的歌詞文件和內(nèi)嵌的歌詞殴瘦。外置的歌詞主要指.lrc格式的文本文件。

1.LRC歌詞

這是大多數(shù)播放器支持的外掛歌詞号杠。對(duì)于電腦上的播放軟件來(lái)說(shuō)蚪腋,他可以在歌曲和歌詞文件之間建立一個(gè)映射(關(guān)聯(lián)),這當(dāng)然是很方便的姨蟋√肟可是對(duì)于mp3播放機(jī)來(lái)說(shuō)就沒(méi)那么容易了,兩者的文件名必須相同眼溶。(擴(kuò)展名當(dāng)然不同了:) 好在千千給我們提供了自動(dòng)命名的功能寝贡,甚至在你通過(guò)千千把mp3文件發(fā)送到可移動(dòng)磁盤的時(shí)候徐钠,它還很貼心地問(wèn)你要不要把關(guān)聯(lián)的歌詞文件也烤過(guò)去痊银,多好的軟件衣屏!

lrc格式其實(shí)就是純文本,用notepad打開(kāi)可以看到酝静。示例
[02:09.30][04:02.22]On a dark desert highway, cool wind in my hair
它的結(jié)構(gòu)以行為單位,行首是用中括號(hào)[]括起來(lái)的時(shí)間羡玛,后面是歌詞內(nèi)容别智。也許你要問(wèn)了,為什么有兩個(gè)時(shí)間標(biāo)記呢稼稿?哈哈薄榛,lrc格式是很聰明的,對(duì)于某些重復(fù)的歌詞让歼,它就只寫時(shí)間標(biāo)簽把內(nèi)容省略了敞恋。同一行中不管有多少時(shí)間標(biāo)簽,其歌詞內(nèi)容都是那一個(gè)谋右。還有一點(diǎn)要說(shuō)明硬猫,雖然是一行一行出現(xiàn)的,但是這些行沒(méi)有順序的改执,也就是說(shuō)那些時(shí)間標(biāo)簽不一定要按時(shí)間排序的啸蜜。這樣的目的也是為了編輯歌詞的方便,比如你要插入一句歌詞辈挂,不用再找它應(yīng)該在什么位置衬横。

2.ID3v2 Synchronized Lyrics

這個(gè)歌詞包含在ID3v2標(biāo)簽中,代號(hào)是SYLT终蒂。它也是由好多小段組成(按時(shí)間順序排列)蜂林,每個(gè)小段包含了時(shí)間標(biāo)簽和歌詞內(nèi)容遥诉,但具體結(jié)構(gòu)和lrc那種不同了。按其標(biāo)準(zhǔn)嚴(yán)格地說(shuō)噪叙,每個(gè)小段應(yīng)該對(duì)以一個(gè)音節(jié)矮锈,這樣把歌詞分的很細(xì)很細(xì),實(shí)際上也不用這么夸張构眯。我的程序里面就是還按一句一句的來(lái)愕难。

3.ID3v2 Unsynchronized Lyrics

這個(gè)歌詞也包含在ID3v2標(biāo)簽中,代號(hào)是USLT惫霸。從字面可以看出猫缭,非同步歌詞,抑或叫異步歌詞壹店,其不包含時(shí)間信息猜丹,就是一下子把歌詞全顯示出來(lái)。這就顯得不那么吸引人了硅卢,所以我的程序中放棄了它射窒,僅僅寫入了ID3v2 Synchronized Lyrics。順便說(shuō)一下将塑,千千靜聽(tīng)對(duì)這兩種ID3歌詞都不支持脉顿,而微軟的Media Player支持。以前我也從沒(méi)有見(jiàn)過(guò)WMP可以顯示歌詞的点寥,其實(shí)它可以艾疟,而且能夠編輯歌詞。

4.Lyrics3v2

這就是千千靜聽(tīng)的那個(gè)內(nèi)嵌歌詞格式敢辩。和上面的兩者不同蔽莱,它是以歌詞信息的形式單獨(dú)出現(xiàn)的,并不依附于某個(gè)mp3標(biāo)簽戚长。他的位置在APEv2標(biāo)簽(如果有的話)之后盗冷,ID3v1之前。開(kāi)頭標(biāo)記是"LYRICSBEGIN",結(jié)束標(biāo)記為"LYRICS200"同廉。他的結(jié)構(gòu)相對(duì)簡(jiǎn)單仪糖,基本上是照抄.lrc歌詞的格式。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末恤溶,一起剝皮案震驚了整個(gè)濱河市乓诽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌咒程,老刑警劉巖鸠天,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異帐姻,居然都是意外死亡稠集,警方通過(guò)查閱死者的電腦和手機(jī)奶段,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)剥纷,“玉大人痹籍,你說(shuō)我怎么就攤上這事』扌” “怎么了蹲缠?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)悠垛。 經(jīng)常有香客問(wèn)我线定,道長(zhǎng),這世上最難降的妖魔是什么确买? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任斤讥,我火速辦了婚禮,結(jié)果婚禮上湾趾,老公的妹妹穿的比我還像新娘芭商。我一直安慰自己,他們只是感情好搀缠,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布铛楣。 她就那樣靜靜地躺著,像睡著了一般艺普。 火紅的嫁衣襯著肌膚如雪蛉艾。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,590評(píng)論 1 305
  • 那天衷敌,我揣著相機(jī)與錄音,去河邊找鬼拓瞪。 笑死缴罗,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的祭埂。 我是一名探鬼主播面氓,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蛆橡!你這毒婦竟也來(lái)了舌界?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤泰演,失蹤者是張志新(化名)和其女友劉穎呻拌,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體睦焕,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡藐握,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年靴拱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片猾普。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡袜炕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出初家,到底是詐尸還是另有隱情偎窘,我是刑警寧澤,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布溜在,位于F島的核電站陌知,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏炕泳。R本人自食惡果不足惜纵诞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望培遵。 院中可真熱鬧浙芙,春花似錦、人聲如沸籽腕。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)皇耗。三九已至南窗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間郎楼,已是汗流浹背万伤。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留呜袁,地道東北人敌买。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像阶界,于是被迫代替她去往敵國(guó)和親虹钮。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容