專利名稱:一種移動(dòng)終端歌曲播放的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及移動(dòng)通信設(shè)備,尤其涉及一種移動(dòng)終端歌曲播放的方法和裝置。
背景技術(shù):
目前,隨著移動(dòng)通信技術(shù)的不斷發(fā)展,移動(dòng)終端已經(jīng)深入到人們的生活中,移動(dòng)通信也已成為最廣泛使用的通信方式。這里,本發(fā)明所稱的移動(dòng)終端是指手機(jī)、PDA (Personal Digital Assistant,個(gè)人數(shù)字助理)等具有無線通訊功能的小型手持式移動(dòng)通信設(shè)備。以 手機(jī)為例,其作為日常生活和商業(yè)事務(wù)的工具,在用戶的生活中占有重要的地位。手機(jī)除了具有接打電話、收發(fā)短信的基本功能以外,目前已被賦予了各種其他功 能,如拍照、上網(wǎng)、歌曲/視頻播放等。其中,歌曲播放已經(jīng)成為手機(jī)不可或缺的一項(xiàng)重要功 能。在手機(jī)播放歌曲時(shí),最好能夠同步且全屏地顯示歌詞,以給用戶帶來較好的使用 體驗(yàn)。然而,現(xiàn)有的手機(jī)大多不具有該功能。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種移動(dòng)終端歌曲播放的方法和裝置,它能夠在移動(dòng)終端播 放歌曲時(shí)同步且全屏地顯示歌詞。為達(dá)到上述目的,本發(fā)明采用如下技術(shù)方案一種移動(dòng)終端歌曲播放的方法,包括步驟1:開始播放歌曲;步驟2:讀取歌詞;步驟3:解析歌詞;步驟4:根據(jù)移動(dòng)終端的顯示分辨率,獲得移動(dòng)終端全屏顯示歌詞的行數(shù)并開始 全屏顯示歌詞;步驟5 獲取當(dāng)前歌曲的播放時(shí)間,判斷歌曲是否播放完畢,如果是,則轉(zhuǎn)至步驟 8,如果否,則進(jìn)行步驟6;步驟6 根據(jù)所獲取的當(dāng)前歌曲的播放時(shí)間,判斷當(dāng)前播放的是哪一行歌詞,并突 出顯示該行歌詞;步驟7 根據(jù)所獲取的當(dāng)前歌曲的播放時(shí)間,計(jì)算歌詞向上滾動(dòng)的幅度,并進(jìn)行歌 詞上滾,返回步驟5;步驟8:結(jié)束。進(jìn)一步地,所述步驟4中根據(jù)移動(dòng)終端的顯示分辨率,獲得移動(dòng)終端全屏顯示歌 詞的行數(shù)具體包括步驟41 查找移動(dòng)終端系統(tǒng)文件,獲取移動(dòng)終端屏幕的顯示分辨率;步驟42 查找移動(dòng)終端顯示的字體大小和行間距,得到每行歌詞的整體高度;步驟43 根據(jù)所得到的移動(dòng)終端屏幕的顯示分辨率和每行歌詞的整體高度,計(jì)算得到移動(dòng)終端全屏顯示歌詞的行數(shù)。進(jìn)一步地,所述步驟6之后,步驟8之前還包括步驟7,根據(jù)所獲取的當(dāng)前歌曲的播放時(shí)間,計(jì)算待刷歌詞的寬度,并進(jìn)行刷歌 詞。進(jìn)一步地,所述步驟7中歌詞上滾的高度=(Tl-TO) + (T2-T0) X每行歌詞的整體
高度;當(dāng)所述歌詞為LRC歌詞時(shí),所述步驟7’中待刷歌詞的寬度=(Tl-TO) + (T2-T0)X 當(dāng)前行歌詞寬度;當(dāng)所述歌詞為KSC歌詞時(shí),所述步驟7’中待刷歌詞的寬度=當(dāng)前字的寬度X (當(dāng) 前字播放過的時(shí)間+當(dāng)前字的播放時(shí)間)+當(dāng)前字之前已播放的所有字的總寬度;其中,Tl為當(dāng)前歌曲的播放時(shí)間,TO為當(dāng)前行歌詞播放起始時(shí)間,T2為當(dāng)前行歌 詞播放結(jié)束時(shí)間。進(jìn)一步地,所述步驟7中,在歌曲的播放時(shí)間至少到達(dá)第二行歌詞時(shí),才開始進(jìn)行 歌詞上滾。一種移動(dòng)終端,包括播放模塊,用于開始播放歌曲;讀取模塊,用于讀取歌詞;解析模塊,用于解析歌詞;獲取及顯示模塊,用于根據(jù)移動(dòng)終端的顯示分辨率,獲得移動(dòng)終端全屏顯示歌詞 的行數(shù)并開始全屏顯示歌詞;獲取及判斷模塊,用于獲取當(dāng)前歌曲的播放時(shí)間,判斷歌曲是否播放完畢,如果 是,則轉(zhuǎn)至結(jié)束模塊,如果否,則轉(zhuǎn)至判斷模塊;判斷及突出顯示模塊,用于根據(jù)所獲取的當(dāng)前歌曲的播放時(shí)間,判斷當(dāng)前播放的 是哪一行歌詞,并突出顯示該行歌詞;計(jì)算及滾動(dòng)模塊,用于根據(jù)所獲取的當(dāng)前歌曲的播放時(shí)間,計(jì)算歌詞向上滾動(dòng)的 幅度,并進(jìn)行歌詞上滾,轉(zhuǎn)至獲取及判斷模塊;結(jié)束模塊,用于結(jié)束程序。進(jìn)一步地,所述獲取及顯示模塊包括第一獲取子模塊,用于查找移動(dòng)終端系統(tǒng)文件,獲取移動(dòng)終端屏幕的顯示分辨 率;第二獲取子模塊,用于查找移動(dòng)終端顯示的字體大小和行間距,得到每行歌詞的 整體高度;計(jì)算子模塊,用于根據(jù)所得到的移動(dòng)終端屏幕的顯示分辨率和每行歌詞的整體高 度,計(jì)算得到移動(dòng)終端全屏顯示歌詞的行數(shù)。進(jìn)一步地,所述移動(dòng)終端還包括計(jì)算及刷詞模塊,用于根據(jù)所獲取的當(dāng)前歌曲的播放時(shí)間,計(jì)算待刷歌詞的寬度, 并進(jìn)行刷歌詞。進(jìn)一步地,所述計(jì)算及滾動(dòng)模塊中歌詞上滾的高度=(Tl-TO) + (T2-T0) X每行 歌詞的整體高度;
當(dāng)所述歌詞為LRC歌詞時(shí),所述計(jì)算及刷詞模塊中待刷歌詞的寬度= (Tl-TO) + (T2-T0) X當(dāng)前行歌詞寬度;當(dāng)所述歌詞為KSC歌詞時(shí),所述計(jì)算及刷詞模塊中待刷歌詞的寬度=當(dāng)前字的寬 度X (當(dāng)前字播放過的時(shí)間+當(dāng)前字的播放時(shí)間)+當(dāng)前字之前已播放的所有字的總寬 度;其中,Tl為當(dāng)前歌曲的播放時(shí)間,TO為當(dāng)前行歌詞播放起始時(shí)間,T2為當(dāng)前行歌 詞播放結(jié)束時(shí)間。進(jìn)一步地,所述計(jì)算及滾動(dòng)模塊進(jìn)一步用于在歌曲的播放時(shí)間至少到達(dá)第二行歌 詞時(shí),才開始進(jìn)行歌詞上滾。本發(fā)明提供的移動(dòng)終端歌曲播放的方法和裝置,能夠在移動(dòng)終端播放歌曲時(shí)同步刷新歌詞且全屏地顯示歌詞,從而給用戶帶來較好的使用體驗(yàn)。
圖1為本發(fā)明的移動(dòng)終端歌曲播放的方法的流程示意圖;圖2為本發(fā)明的移動(dòng)終端歌曲播放的裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,下面結(jié)合附圖及實(shí)施例,對(duì) 本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不 用于限定本發(fā)明。如圖1所示,本發(fā)明提供一種移動(dòng)終端歌曲播放的方法,包括步驟1 開始播放歌曲;本步驟中的歌曲既可以是移動(dòng)終端內(nèi)預(yù)先存儲(chǔ)的歌曲,也可以是移動(dòng)終端在線試 聽而下載的歌曲。步驟2:讀取歌詞;本步驟中的歌詞既可以是移動(dòng)終端內(nèi)預(yù)先存儲(chǔ)的與歌曲相對(duì)應(yīng)的歌詞,也可以是 移動(dòng)終端根據(jù)歌曲名稱從網(wǎng)絡(luò)臨時(shí)獲取的歌詞。步驟3 解析歌詞;歌詞的格式可以是LRC或者KSC,其中,LRC為同步顯示歌詞,它包含每行歌詞的播 放時(shí)間,而KSC為逐詞顯示歌詞,它包含每行歌詞的播放時(shí)間以及每字的播放時(shí)間。對(duì)于LRC歌詞,利用本步驟3進(jìn)行解析可以獲取每行歌詞的播放時(shí)間(包括每行 歌詞的起始時(shí)間,結(jié)束時(shí)間)、每行歌詞的寬度(單位為像素)、總行數(shù)等信息,以待后續(xù)步 驟中使用;對(duì)于KSC歌詞,利用本步驟3進(jìn)行解析可以獲取每行歌詞的播放時(shí)間(包括每行 歌詞的起始時(shí)間,結(jié)束時(shí)間)、每行歌詞的字?jǐn)?shù)、每行歌詞每個(gè)字的播放時(shí)間、每行歌詞每個(gè) 字的寬度等信息,以待后續(xù)步驟中使用。通過調(diào)用移動(dòng)終端系統(tǒng)中取得字符串寬度以及播放時(shí)間的函數(shù),即可獲取每行歌 詞的播放時(shí)間和每行歌詞的寬度等等上述數(shù)據(jù)。步驟4:根據(jù)移動(dòng)終端的顯示分辨率,獲得移動(dòng)終端全屏顯示歌詞的行數(shù)并開始全屏顯示歌詞;此處,全屏顯示歌詞時(shí),所顯示的歌詞行數(shù)即是所獲得的移動(dòng)終端全屏顯示歌詞 的行數(shù)。步驟5 獲取當(dāng)前歌曲的播放時(shí)間,判斷歌曲是否播放完畢,如果是,則轉(zhuǎn)至步驟 8,如果否,則進(jìn)行步驟6;步驟6 根據(jù)所獲取的當(dāng)前歌曲的播放時(shí)間,判斷當(dāng)前播放的是哪一行歌詞,并突 出顯示(采用高亮或者字體變色等方式)該行歌詞;本步驟舉例如果所獲取的當(dāng)前歌曲的播放時(shí)間是6秒,查找步驟3獲取的每行歌 詞的播放時(shí)間,發(fā)現(xiàn)5-10秒為第二行歌詞的播放時(shí)間,則可以判斷出當(dāng)前播放的是第二行 歌詞,因此對(duì)第二行歌詞進(jìn)行突出顯示。步驟7 根據(jù)所獲取的當(dāng)前歌曲的播放時(shí)間,計(jì)算歌詞向上滾動(dòng)的幅度,并進(jìn)行歌詞上滾,返回步驟5;步驟8:結(jié)束。本發(fā)明的移動(dòng)終端歌曲播放的方法,能夠在移動(dòng)終端播放歌曲時(shí)同步且全屏地顯 示歌詞,從而給用戶帶來較好的使用體驗(yàn)。上述步驟4中,根據(jù)移動(dòng)終端的顯示分辨率,獲得移動(dòng)終端全屏顯示歌詞的行數(shù) 可以具體包括步驟41 查找移動(dòng)終端系統(tǒng)文件,獲取移動(dòng)終端屏幕的顯示分辨率;顯示分辨率是指屏幕上顯示的像素個(gè)數(shù),例如,分辨率160X128代表水平像素?cái)?shù) 為160個(gè),垂直像素?cái)?shù)128個(gè)。步驟42 查找移動(dòng)終端顯示的字體大小和行間距,得到每行歌詞的整體高度;此處,每行歌詞的整體高度可以由每行歌詞的高度(即移動(dòng)終端顯示的字體大 小)+歌詞的行間距(即移動(dòng)終端顯示的字體的行間距)得到。步驟43 根據(jù)所得到的移動(dòng)終端屏幕的顯示分辨率和每行歌詞的整體高度,計(jì)算 得到移動(dòng)終端全屏顯示歌詞的行數(shù)。需要注意的是,如果移動(dòng)終端屏幕的頂部和底部需要預(yù)留Bar (工具條),則移動(dòng) 終端屏幕的高度需要除去上下Bar的高度后,再用于計(jì)算移動(dòng)終端全屏顯示歌詞的行數(shù)。此外,移動(dòng)終端全屏顯示歌詞的行數(shù)還可以采用其他方式來實(shí)現(xiàn),例如根據(jù)移動(dòng) 終端屏幕的大小并結(jié)合美學(xué)要求,自動(dòng)為用戶選擇顯示效果較好的移動(dòng)終端全屏顯示歌詞 的行數(shù),或者還可以根據(jù)用戶的喜好,讓用戶自己定義移動(dòng)終端全屏顯示歌詞的行數(shù)。上述步驟6之后,步驟8之前還可以包括步驟7,根據(jù)所獲取的當(dāng)前歌曲的播放時(shí)間,計(jì)算待刷歌詞的寬度,并進(jìn)行刷歌 詞。該步驟7’既可以位于步驟7之前,也可以與步驟7同時(shí)執(zhí)行。該步驟可以根據(jù)歌 曲的播放進(jìn)度,對(duì)每行歌詞進(jìn)行重新刷色,從而給用戶帶來更好的使用體驗(yàn)。優(yōu)選地,上述步驟7中,歌詞上滾的高度=(Tl-TO) + (T2-T0) X每行歌詞的整體
高度;當(dāng)所述歌詞為LRC歌詞時(shí),上述步驟V中,待刷歌詞的寬度= (Tl-TO) + (T2-T0) X當(dāng)前行歌詞寬度;
當(dāng)所述歌詞為KSC歌詞時(shí),所述步驟7’中待刷歌詞的寬度=當(dāng)前字的寬度X (當(dāng) 前字播放過的時(shí)間+當(dāng)前字的播放時(shí)間)+當(dāng)前字之前已播放的所有字的總寬度;其中,Tl為當(dāng)前歌曲的播放時(shí)間,TO為當(dāng)前行歌詞播放起始時(shí)間,T2為當(dāng)前行歌 詞播放結(jié)束時(shí)間。TO和T2均可以在前述步驟3中獲得。上述刷歌詞步驟中,當(dāng)歌詞為KSC歌詞時(shí),能夠?qū)崿F(xiàn)精確地逐字刷歌詞,而當(dāng)歌詞 為LRC歌詞時(shí),由于歌詞本身所攜帶信息有限,僅能實(shí)現(xiàn)粗略地刷歌詞。當(dāng)歌詞為KSC歌詞時(shí),歌詞刷新過程詳述如下1.獲取當(dāng)前歌曲的播放時(shí)間t (為描述方便,此處采用與上不同的字母表示),得到當(dāng)前的播放行數(shù);2.找出當(dāng)前行所播放的字(即當(dāng)前字);具體方式為計(jì)算當(dāng)前行已播放過的時(shí)間(計(jì)算方式t-start),將當(dāng)前行每個(gè)字播放時(shí)間
、......tn依次逐一累加,與當(dāng)前行已播放過的時(shí)間進(jìn)行比較,當(dāng)累加到某個(gè)字的播放時(shí)間
比當(dāng)前行已播放過的時(shí)間大時(shí),則該字即為當(dāng)前行所播放的字。3.累加當(dāng)前行所播放的字之前的已播放的所有字的寬度,11;12,……In為當(dāng)前 行每個(gè)字的寬度;4.計(jì)算當(dāng)前字播放過的時(shí)間;用當(dāng)前行已播放的時(shí)間(t-start)減去當(dāng)前行播放字前面所有字已播放的時(shí)間, 得到當(dāng)前字播放過的時(shí)間。5.計(jì)算當(dāng)前字應(yīng)刷新的寬度;當(dāng)前字播放過的時(shí)間+當(dāng)前字播放時(shí)間=當(dāng)前字需刷新的寬度+當(dāng)前字的寬度。6.計(jì)算當(dāng)前行應(yīng)該刷新的總寬度。當(dāng)前行應(yīng)刷新的總寬度等于當(dāng)前字需刷新的寬度加上當(dāng)前行播放字之前的已播 放的所有字的總寬度,計(jì)算公式如下
Σηι-1
Luuy/j-l·,(0<m<n, 0<i<n,m、i
t m
均為整數(shù))。其中,L為當(dāng)前行應(yīng)刷新的總寬度,t為當(dāng)前歌曲的播放時(shí)間,start為當(dāng)前行的起 始時(shí)間,η為當(dāng)前行的總字?jǐn)?shù),m為當(dāng)前行所播放的字(0 < m < n,m為整數(shù)),、為當(dāng)前行 每個(gè)字的播放時(shí)間(0 < i < n,i為整數(shù)),Ii為當(dāng)前行每個(gè)字的寬度。start、1”、、η均 可從前述的解析步驟3中直接獲得,m可以間接計(jì)算得到,t可以通過計(jì)時(shí)得到。本發(fā)明中,顯示歌詞時(shí),某行歌詞的寬度可能會(huì)大于移動(dòng)終端屏幕的寬度,這樣的 話,可以在刷歌詞的時(shí)候同時(shí)讓該行歌詞向左滾動(dòng),以不斷顯示出該行歌詞后面的內(nèi)容。歌 詞向左滾動(dòng)的尺寸可以參照歌詞上滾的計(jì)算方式來得到。另外,在上述步驟7中,為了避免當(dāng)前行的歌詞一邊播放,一邊上滾而導(dǎo)致移出移 動(dòng)終端的屏幕,可以設(shè)定在歌曲的播放時(shí)間至少到達(dá)第二行歌詞時(shí),才開始進(jìn)行歌詞上滾。與上述的移動(dòng)終端歌曲播放的方法相對(duì)應(yīng),本發(fā)明還提供一種移動(dòng)終端,如圖2 所示,包括
播放模塊201,用于開始播放歌曲;讀取模塊202,用于讀取歌詞;解析模塊203,用于解析歌詞;獲取及顯示模塊204,用于根據(jù)移動(dòng)終端的顯示分辨率,獲得移動(dòng)終端全屏顯示歌 詞的行數(shù)并開始全屏顯示歌詞;獲取及判斷模塊205,用于獲取當(dāng)前歌曲的播放時(shí)間,判斷歌曲是否播放完畢,如果是,則轉(zhuǎn)至結(jié)束模塊208,如果否,則轉(zhuǎn)至判斷及突出顯示模塊206 ;判斷及突出顯示模塊206,用于根據(jù)所獲取的當(dāng)前歌曲的播放時(shí)間,判斷當(dāng)前播放 的是哪一行歌詞,并突出顯示該行歌詞;計(jì)算及滾動(dòng)模塊207,用于根據(jù)所獲取的當(dāng)前歌曲的播放時(shí)間,計(jì)算歌詞向上滾動(dòng) 的幅度,并進(jìn)行歌詞上滾,轉(zhuǎn)至獲取及判斷模塊205 ;結(jié)束模塊208,用于結(jié)束程序。本發(fā)明的移動(dòng)終端,能夠在移動(dòng)終端播放歌曲時(shí)同步且全屏地顯示歌詞,從而給 用戶帶來較好的使用體驗(yàn)。優(yōu)選地,所述獲取及顯示模塊包括第一獲取子模塊,用于查找移動(dòng)終端系統(tǒng)文件,獲取移動(dòng)終端屏幕的顯示分辨 率;第二獲取子模塊,用于查找移動(dòng)終端顯示的字體大小和行間距,得到每行歌詞的 整體高度;計(jì)算子模塊,用于根據(jù)所得到的移動(dòng)終端屏幕的顯示分辨率和每行歌詞的整體高 度,計(jì)算得到移動(dòng)終端全屏顯示歌詞的行數(shù)。優(yōu)選地,所述移動(dòng)終端,還可以包括計(jì)算及刷詞模塊,用于根據(jù)所獲取的當(dāng)前歌曲的播放時(shí)間,計(jì)算待刷歌詞的寬度, 并進(jìn)行刷歌詞。這樣就可以根據(jù)歌曲的播放進(jìn)度,對(duì)每行歌詞進(jìn)行重新刷色,從而給用戶帶來更 好的使用體驗(yàn)。優(yōu)選地,所述計(jì)算及滾動(dòng)模塊中歌詞上滾的高度=(Tl-TO) + (T2-T0) X每行歌 詞的整體高度;當(dāng)所述歌詞為LRC歌詞時(shí),所述計(jì)算及刷詞模塊中待刷歌詞的寬度= (Tl-TO) + (T2-T0) X當(dāng)前行歌詞寬度;當(dāng)所述歌詞為KSC歌詞時(shí),所述計(jì)算及刷詞模塊中待刷歌詞的寬度=當(dāng)前字的寬 度X (當(dāng)前字播放過的時(shí)間+當(dāng)前字的播放時(shí)間)+當(dāng)前字之前已播放的所有字的總寬 度;其中,Tl為當(dāng)前歌曲的播放時(shí)間,TO為當(dāng)前行歌詞播放起始時(shí)間,T2為當(dāng)前行歌 詞播放結(jié)束時(shí)間。優(yōu)選地,為了避免當(dāng)前行的歌詞一邊播放,一邊上滾而導(dǎo)致移出移動(dòng)終端的屏幕, 所述計(jì)算及滾動(dòng)模塊進(jìn)一步用于在歌曲的播放時(shí)間至少到達(dá)第二行歌詞時(shí),才開始進(jìn)行歌 詞上滾。通過本發(fā)明提供的移動(dòng)終端歌曲播放的方法和裝置,能夠在移動(dòng)終端播放歌曲時(shí)同步刷新歌詞且全屏地顯示歌詞,從而給用戶帶來較好的使用體驗(yàn)。
以上所述僅為本發(fā)明的較佳實(shí)施例,并非用來限定本發(fā)明的實(shí)施范圍;如果不脫 離本發(fā)明的精神和范圍,對(duì)本發(fā)明進(jìn)行修改或者等同替換,均應(yīng)涵蓋在本發(fā)明權(quán)利要求的 保護(hù)范圍當(dāng)中。
權(quán)利要求
一種移動(dòng)終端歌曲播放的方法,其特征在于,包括步驟1開始播放歌曲;步驟2讀取歌詞;步驟3解析歌詞;步驟4根據(jù)移動(dòng)終端的顯示分辨率,獲得移動(dòng)終端全屏顯示歌詞的行數(shù)并開始全屏顯示歌詞;步驟5獲取當(dāng)前歌曲的播放時(shí)間,判斷歌曲是否播放完畢,如果是,則轉(zhuǎn)至步驟8,如果否,則進(jìn)行步驟6;步驟6根據(jù)所獲取的當(dāng)前歌曲的播放時(shí)間,判斷當(dāng)前播放的是哪一行歌詞,并突出顯示該行歌詞;步驟7根據(jù)所獲取的當(dāng)前歌曲的播放時(shí)間,計(jì)算歌詞向上滾動(dòng)的幅度,并進(jìn)行歌詞上滾,返回步驟5;步驟8結(jié)束。
2.根據(jù)權(quán)利要求1所述的移動(dòng)終端歌曲播放的方法,其特征在于,所述步驟4中根據(jù)移 動(dòng)終端的顯示分辨率,獲得移動(dòng)終端全屏顯示歌詞的行數(shù)具體包括步驟41 查找移動(dòng)終端系統(tǒng)文件,獲取移動(dòng)終端屏幕的顯示分辨率; 步驟42 查找移動(dòng)終端顯示的字體大小和行間距,得到每行歌詞的整體高度; 步驟43 根據(jù)所得到的移動(dòng)終端屏幕的顯示分辨率和每行歌詞的整體高度,計(jì)算得到 移動(dòng)終端全屏顯示歌詞的行數(shù)。
3.根據(jù)權(quán)利要求1所述的移動(dòng)終端歌曲播放的方法,其特征在于,所述步驟6之后,步 驟8之前還包括步驟7’ 根據(jù)所獲取的當(dāng)前歌曲的播放時(shí)間,計(jì)算待刷歌詞的寬度,并進(jìn)行刷歌詞。
4.根據(jù)權(quán)利要求3所述的移動(dòng)終端歌曲播放的方法,其特征在于,所述步驟7中歌詞 上滾的高度=(T1-T0) + (T2-T0) X每行歌詞的整體高度;當(dāng)所述歌詞為同步顯示歌詞LRC 時(shí),所述步驟7’中待刷歌詞的寬度=(T1-T0) + (T2-T0) X當(dāng)前行歌詞寬度;當(dāng)所述歌詞為逐字顯示歌詞KSC時(shí),所述步驟7’中待刷歌詞的寬度=當(dāng)前字的寬 度X (當(dāng)前字播放過的時(shí)間+當(dāng)前字的播放時(shí)間)+當(dāng)前字之前已播放的所有字的總寬 度;其中,T1為當(dāng)前歌曲的播放時(shí)間,TO為當(dāng)前行歌詞播放起始時(shí)間,T2為當(dāng)前行歌詞播 放結(jié)束時(shí)間。
5.根據(jù)權(quán)利要求1至4中任一權(quán)利要求所述的移動(dòng)終端歌曲播放的方法,其特征在于, 所述步驟7中,在歌曲的播放時(shí)間至少到達(dá)第二行歌詞時(shí),才開始進(jìn)行歌詞上滾。
6.一種移動(dòng)終端,其特征在于,包括 播放模塊,用于開始播放歌曲; 讀取模塊,用于讀取歌詞;解析模塊,用于解析歌詞;獲取及顯示模塊,用于根據(jù)移動(dòng)終端的顯示分辨率,獲得移動(dòng)終端全屏顯示歌詞的行 數(shù)并開始全屏顯示歌詞;獲取及判斷模塊,用于獲取當(dāng)前歌曲的播放時(shí)間,判斷歌曲是否播放完畢,如果是,則轉(zhuǎn)至結(jié)束模塊,如果否,則轉(zhuǎn)至判斷模塊;判斷及突出顯示模塊,用于根據(jù)所獲取的當(dāng)前歌曲的播放時(shí)間,判斷當(dāng)前播放的是哪 一行歌詞,并突出顯示該行歌詞;計(jì)算及滾動(dòng)模塊,用于根據(jù)所獲取的當(dāng)前歌曲的播放時(shí)間,計(jì)算歌詞向上滾動(dòng)的幅度, 并進(jìn)行歌詞上滾,轉(zhuǎn)至獲取及判斷模塊;結(jié)束模塊,用于結(jié)束程序。
7.根據(jù)權(quán)利要求6所述的移動(dòng)終端,其特征在于,所述獲取及顯示模塊包括第一獲取子模塊,用于查找移動(dòng)終端系統(tǒng)文件,獲取移動(dòng)終端屏幕的顯示分辨率;第二獲取子模塊,用于查找移動(dòng)終端顯示的字體大小和行間距,得到每行歌詞的整體 高度;計(jì)算子模塊,用于根據(jù)所得到的移動(dòng)終端屏幕的顯示分辨率和每行歌詞的整體高度, 計(jì)算得到移動(dòng)終端全屏顯示歌詞的行數(shù)。
8.根據(jù)權(quán)利要求6所述的移動(dòng)終端,其特征在于,還包括計(jì)算及刷詞模塊,用于根據(jù)所獲取的當(dāng)前歌曲的播放時(shí)間,計(jì)算待刷歌詞的寬度,并進(jìn) 行刷歌詞。
9.根據(jù)權(quán)利要求8所述的移動(dòng)終端,其特征在于,所述計(jì)算及滾動(dòng)模塊中歌詞上滾的 高度=(T1-T0) + (T2-T0) X每行歌詞的整體高度;當(dāng)所述歌詞為LRC歌詞時(shí),所述計(jì)算及刷詞模塊中待刷歌詞的寬度= (T1-T0) + (T2-T0) X當(dāng)前行歌詞寬度;當(dāng)所述歌詞為KSC歌詞時(shí),所述計(jì)算及刷詞模塊中待刷歌詞的寬度=當(dāng)前字的寬 度X (當(dāng)前字播放過的時(shí)間+當(dāng)前字的播放時(shí)間)+當(dāng)前字之前已播放的所有字的總寬 度;其中,T1為當(dāng)前歌曲的播放時(shí)間,TO為當(dāng)前行歌詞播放起始時(shí)間,T2為當(dāng)前行歌詞播 放結(jié)束時(shí)間。
10.根據(jù)權(quán)利要求6至9中任一權(quán)利要求所述的移動(dòng)終端,其特征在于,所述計(jì)算及滾 動(dòng)模塊進(jìn)一步用于在歌曲的播放時(shí)間至少到達(dá)第二行歌詞時(shí),才開始進(jìn)行歌詞上滾。
全文摘要
本發(fā)明公開了一種移動(dòng)終端歌曲播放的方法和裝置,所述方法包括步驟1開始播放歌曲;步驟2讀取歌詞;步驟3解析歌詞;步驟4根據(jù)移動(dòng)終端的顯示分辨率,獲得移動(dòng)終端全屏顯示歌詞的行數(shù)并開始全屏顯示歌詞;步驟5獲取當(dāng)前歌曲的播放時(shí)間,判斷歌曲是否播放完畢,如果是,則轉(zhuǎn)至步驟8,如果否,則進(jìn)行步驟6;步驟6根據(jù)所獲取的當(dāng)前歌曲的播放時(shí)間,判斷當(dāng)前播放的是哪一行歌詞,并突出顯示該行歌詞;步驟7根據(jù)所獲取的當(dāng)前歌曲的播放時(shí)間,計(jì)算歌詞向上滾動(dòng)的幅度,并進(jìn)行歌詞上滾,返回步驟5;步驟8結(jié)束。本發(fā)明能夠在移動(dòng)終端播放歌曲時(shí)同步刷新歌詞且全屏地顯示歌詞,從而給用戶帶來較好的使用體驗(yàn)。
文檔編號(hào)G06F3/048GK101867656SQ201010211119
公開日2010年10月20日 申請日期2010年6月23日 優(yōu)先權(quán)日2010年6月23日
發(fā)明者胡正, 郭守霞 申請人:深圳市五巨科技有限公司