移动终端播放歌曲的方法及可播放歌曲的移动终端转让专利

申请号 : CN201010144444.4

文献号 : CN101808162B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 焦瑜芝

申请人 : 青岛海信移动通信技术股份有限公司

摘要 :

本发明公开了一种移动终端播放歌曲的方法及可播放歌曲的移动终端,用以解决在现有非智能移动终端在播放歌曲并同步显示歌词时显示效果不佳的问题。该方法包括:根据待播放歌曲对应的歌词文件、以及显示区域的尺寸,创建缓冲区;播放歌曲时,在当前播放时间到达一个时间标签标识的时间时,以预定刷屏周期,逐次从缓冲区中取出待显示数据并显示,取出待显示数据的起点位置为前一次取出待显示数据的起点位置与第二偏移量之和,所述第二偏移量为在与所述第一方向垂直的第二方向上滚屏速度与预定刷屏周期的乘积,滚屏速度为缓冲区中该时间标签对应歌词的像素数据占用的总比特数除以下一时间标签标识的时间与该时间标签标识的时间之差的结果。

权利要求 :

1.一种移动终端播放歌曲的方法,其特征在于,包括:

根据待播放歌曲对应的歌词文件、以及显示区域的尺寸,创建缓冲区,该缓冲区以显示区域中第一方向上每行像素的像素数据占用的比特数为第一偏移量,按照所述歌词文件中时间标签标识的时间先后顺序存储每个时间标签对应的歌词的像素数据;

播放歌曲时,在当前播放时间到达一个时间标签标识的时间时,执行:

以预定刷屏周期,逐次从所述缓冲区中取出待显示数据并显示,所述待显示数据的比特数为显示区域包含的全部像素的像素数据占用的比特数,取出待显示数据的起点位置为前一次取出待显示数据的起点位置与第二偏移量之和,所述第二偏移量为在与所述第一方向垂直的第二方向上当前滚屏速度与预定刷屏周期的乘积,所述当前滚屏速度为缓冲区中该时间标签对应歌词的像素数据占用的总比特数除以时间顺序上下一时间标签标识的时间与该时间标签标识的时间之差的结果,其中第一次从缓冲区中取出待显示数据时的起始位置为缓冲区的起点位置。

2.如权利要求1所述的方法,其特征在于,通过以下方式来获得歌词文件:

在移动终端中存在与待播放歌曲的音频文件文件名相同且后缀为预定字符或预定字符串的文件时,确定出存在待播放歌曲对应的歌词文件;否则确定不存在待播放歌曲对应的歌词文件。

3.如权利要求1所述的方法,其特征在于,通过以下方式来获得歌词文件:

在移动终端中待播放歌曲的音频文件的存储路径下,存在与待播放歌曲的音频文件文件名相同且后缀为预定字符或预定字符串的文件时,确定出存在待播放歌曲对应的歌词文件;否则确定不存在待播放歌曲对应的歌词文件。

4.如权利要求1所述的方法,其特征在于,创建缓冲区,具体包括:

针对每个时间标签,根据该时间标签对应的歌词、以及预定的字体信息,确定所述时间标签对应的歌词中每个字符的像素数据,并将确定出的像素数据以显示区域中第一方向上每行像素的像素值数据占用的比特数为偏移量,在时间顺序上与该标签相邻的前一时间标签对应的歌词的像素数据的存储位置之后紧邻的位置上存储。

5.如权利要求1所述的方法,其特征在于,播放歌曲时从缓冲区中取出待显示数据之前,还包括:

在当前播放时间到达时间顺序上下一个时间标签标识的时间之前,将所述缓冲区中该时间标签对应的歌词的像素数据修改为突出显示效果、且将其他时间标签对应的歌词的像素数据修改为非突出显示效果。

6.如权利要求5所述的方法,其特征在于,在当前播放时间到达时间顺序上下一个时间标签标识的时间之前,将所述缓冲区中该时间标签对应的歌词的像素数据修改为突出显示效果、且将其他时间标签对应的歌词的像素数据修改为非突出显示效果,具体包括:在当前播放时间到达时间顺序上该时间标签上一个时间标签标识的时间时,设定定时器的定时时间为该时间标签标识的时间与所述上一个时间标签标识的时间之差,并启动定时器;以及到达所述定时器定时时间时,将该时间标签对应歌词的像素数据修改为突出显示效果,并将所述上一个时间标签对应歌词的像素数据修改为非突出显示效果。

7.如权利要求5或6所述的方法,其特征在于,将该时间标签对应的歌词的像素数据修改为突出显示效果,具体包括:逐一判断所述对应的歌词中的每个字符的每个像素的像素数据是否为背景色数据,若是,不修改;否则,将该像素的像素数据增加或减小一个预定值。

8.如权利要求1所述的方法,其特征在于,所述缓冲区中在时间顺序上 第一个时间标签对应歌词的像素数据之前,还包括与显示区域第一方向上尺寸相同、第二方向的尺寸为显示区域第二方向的尺寸的1/2的区域的背景像素数据。

9.一种可播放歌曲的移动终端,其特征在于,包括:

缓冲区创建单元,根据待播放歌曲对应的歌词文件、以及显示区域的尺寸,创建缓冲区,该缓冲区以显示区域中第一方向上每行像素的像素数据占用的比特数为第一偏移量,按照所述歌词文件中时间标签标识的时间先后顺序存储每个时间标签对应的歌词的像素数据;

显示单元,用于在播放歌曲时,在当前播放时间到达一个时间标签标识的时间时,以预定刷屏周期,逐次从缓冲区创建单元创建的缓冲区中取出待显示数据并显示,所述待显示数据的比特数为用于显示的区域包含的全部像素的像素数据占用的比特数,取出待显示数据的起点位置为前一次取出待显示数据的起点位置与第二偏移量之和,所述第二偏移量为在与所述第一方向垂直的第二方向上当前滚屏速度与预定刷屏周期的乘积,所述当前滚屏速度为缓冲区中该时间标签对应歌词的像素数据占用的总比特数除以时间顺序上下一时间标签标识的时间与该时间标签标识的时间之差的结果,其中第一次从缓冲区中取出待显示数据时的起始位置为缓冲区的起点位置。

10.如权利要求9所述的移动终端,其特征在于,还包括:

显示效果调整单元,用于播放歌曲时,在当前播放时间到达每个时间标签标识的时间时,执行:在当前播放时间到达时间顺序上下一个时间标签标识的时间之前,将所述缓冲区中该时间标签对应的歌词的像素数据修改为突出显示效果、且将其他时间标签对应的歌词的像素数据修改为非突出显示效果;

所述显示单元在显示效果调整单元修改缓冲区中的像素数据之后,以预定刷屏周期,逐次从缓冲区中取出待显示数据并显示。

11.如权利要求9或10所述的移动终端,其特征在于,所述显示单元具体包括: 获取子单元,用于播放歌曲时,在当前播放时间到达每个时间标签标识的时间时以预定刷屏周期,逐次从缓冲区中取出待显示数据,所述待显示数据的比特数为用于显示的区域包含的全部像素的像素数据占用的比特数,取出待显示数据的起点位置为前一次取出待显示数据的起点位置与第二偏移量之和,所述第二偏移量为在与所述第一方向垂直的第二方向上当前滚屏速度与预定刷屏周期的乘积,所述当前滚屏速度为缓冲区中该时间标签对应歌词的像素数据占用的总比特数除以时间顺序上下一时间标签标识的时间与该时间标签标识的时间之差的结果,其中第一次从缓冲区中取出待显示数据时的起始位置为缓冲区的起点位置;

显示执行子单元,用于将获取子单元获取的待显示数据显示到显示区域中。

说明书 :

移动终端播放歌曲的方法及可播放歌曲的移动终端

技术领域

[0001] 本发明涉及移动通信技术领域,尤其涉及一种移动终端播放歌曲的方法及一种可播放歌曲的移动终端。

背景技术

[0002] LRC(LYRIC)格式歌词文件是一种目前广泛应用于个人计算机、移动终端等支持歌曲播放功能的终端上,用于在播放歌曲时,同步地显示当前播放的声音对应的歌词文字的文件。
[0003] 在LRC格式的歌词文件中,除歌词文字之外,包括两种标签,第一种为[mm:ss]或[mm:ss.fff]形式的时间标签(Time-tag),其中mm为分钟值,ss为秒值,fff为毫秒值,用于表示该标签对应的歌词文字的显示时间,在LRC格式歌词文件中时间标签对应的歌词文字紧跟在该时间标签后;第二种为[标签名:标签值]形式的标识标签(ID-tag),例如[ar:歌手名称]、[ti:歌曲名称]、[al:专辑名称]或[by:本文件编者名称]等,用于在歌曲的前奏音乐时间里,播放上述歌曲相关的背景信息。
[0004] 目前,相当数量的移动终端为基于ARM(Advanced RISC Machine)内核、低容量RAM、ROM、以及简单的C语言构建的非智能移动终端,这种非智能终端与昂贵的智能终端相比,虽然具有价格低廉、功耗低的优势,然而由于硬件、操作系统等方面的制约,无法实现安装或运行应用程序等较为复杂的功能。申请号为200910167169.5的专利申请公开了一种适用于非智能终端的,能够在播放歌曲时同步地显示当前播放的声音对应的歌词文字的方案。然而,该方案仅能实现显示当前播放的歌曲中当前一句歌词文字(或者说,当前时间标签对应的歌词文字),显示效果不佳。

发明内容

[0005] 本发明实施例提供一种移动终端播放歌曲的方法,用以解决在现有基于ARM的非智能移动终端在播放歌曲并同步显示歌词时,歌词的显示效果不佳的问题。 [0006] 对应地,本发明实施例还提供了一种可播放歌曲的移动终端。
[0007] 本发明实施例提供的技术方案如下:
[0008] 一种移动终端播放歌曲的方法,包括:
[0009] 根据待播放歌曲对应的歌词文件、以及显示区域的尺寸,创建缓冲区,该缓冲区以显示区域中第一方向上每行像素的像素数据占用的比特数为第一偏移量,按照所述歌词文件中时间标签标识的时间先后顺序存储每个时间标签对应的歌词的像素数据; [0010] 播放歌曲时,在当前播放时间到达一个时间标签标识的时间时,执行: [0011] 以预定刷屏周期,逐次从所述缓冲区中取出待显示数据并显示,所述待显示数据的比特数为用于显示的区域包含的全部像素的像素数据占用的比特数,取出待显示数据的起点位置为前一次取出待显示数据的起点位置与第二偏移量之和,所述第二偏移量为在与所述第一方向垂直的第二方向上当前滚屏速度与预定刷屏周期的乘积,所述当前滚屏速度为缓冲区中该时间标签对应歌词的像素数据占用的总比特数除以时间顺序上下一时间标签标识的时间与该时间标签标识的时间之差的结果,其中第一次从缓冲区中取出待显示数据时的起始位置为缓冲区的起点位置。
[0012] 一种可播放歌曲的移动终端,包括:
[0013] 缓冲区创建单元,根据待播放歌曲对应的歌词文件、以及显示区域的尺寸,创建缓冲区,该缓冲区以显示区域中第一方向上每行像素的像素数据占用的比特数为第一偏移量,按照所述歌词文件中时间标签标识的时间先后顺序存储每个时间标签对应的歌词的像素数据;
[0014] 显示单元,用于在播放歌曲时,在当前播放时间到达一个时间标签标识的 时间时,以预定刷屏周期,逐次从缓冲区创建单元创建的缓冲区中取出待显示数据并显示,所述待显示数据的比特数为用于显示的区域包含的全部像素的像素数据占用的比特数,取出待显示数据的起点位置为前一次取出待显示数据的起点位置与第二偏移量之和,所述第二偏移量为在与所述第一方向垂直的第二方向上当前滚屏速度与预定刷屏周期的乘积,所述当前滚屏速度为缓冲区中该时间标签对应歌词的像素数据占用的总比特数除以时间顺序上下一时间标签标识的时间与该时间标签标识的时间之差的结果,其中第一次从缓冲区中取出待显示数据时的起始位置为缓冲区的起点位置。
[0015] 本发明实施例提供的移动终端播放歌曲的方法,首先根据歌词文件中各时间标签对应的歌词、以及显示区域的尺寸,设置一个以显示区域中每行像素的像素数据占用的比特数为偏移量存储数据缓冲区,该缓冲区中按时间标签标识的时间先后顺序依次存储各时间标签对应的歌词的点阵像素数据。后续播放歌曲时,在每个时间标签标识的时间到达时,以预定刷屏周期,逐次从缓冲区中取出一个包含当前时间标签对应歌词的像素数据在内的、大小与显示区域包含的所有像素的像素数据比特数相同的数据,显示在显示区域中,从而实现同时显示前后几句歌词、并滚动显示的目的。

附图说明

[0016] 图1为本发明实施例的主要实现原理流程图;
[0017] 图2为本发明实施例移动终端播放歌曲时的处理流程图;
[0018] 图3a为本发明实施例中移动终端面板上显示区域的示意图;
[0019] 图3b为本发明实施例缓冲区中存储的歌词像素数据的示意图;
[0020] 图4a为本发明实施例中设置颜色更新定时器的示意图;
[0021] 图4b为本发明实施例中颜色更新定时器到达的示意图;
[0022] 图5a为本发明实施例刷屏过程中第一次从缓冲区中获取待显示数据的示意图; [0023] 图5b为本发明实施例刷屏过程中第二次从缓冲区中获取待显示数据的示意图; [0024] 图6a为本发明实施例中在缓冲区中设置宽度为W、高度为H/2的背景颜色区域的示意图;
[0025] 图6b为本发明实施例中在缓冲区中设置宽度为W、高度为h的背景颜色区域的示意图;
[0026] 图7为本发明实施例提供的第一种可播放歌曲的移动终端的结构示意图; [0027] 图8为本发明实施例提供的第二种可播放歌曲的移动终端的结构示意图。 具体实施方式
[0028] 由于在现有非智能移动终端上,在播放歌曲时,歌词的显示效果较为单调。本发明实施例提出的歌词显示方案的基本思路为:预先设置一个宽度与显示区域相同、高度足够大的一个缓存区(即该缓存区中数据的存储方式为以显示区域中每行像素的像素数据占用的比特数为偏移量),按时间标签标识的时间先后顺序依次存储各时间标签对应的歌词的点阵像素数据。
[0029] 在播放歌曲过程中,在当前播放时间到达每个时间标签标识的时间(该时间标签为当前时间标签)时,设定所述缓存区中该时间标签对应的歌词的点阵像素数据为高亮显示效果,其他时间标签对应的歌词的点阵像素数据为非高亮显示效果;以及从所述缓冲区中取出对应的区域大小与显示区域相同、且包含该时间标签对应歌词的点阵像素数据的连续的数据作为待显示数据,并将取出的待显示数据显示到显示区域中。
[0030] 为了获得均匀连续的滚屏效果,可以在该时间标签标识的时间与时间顺序上下一个时间标签标识的时间之间的时间段内,每当刷屏周期时间到达时,以固定的偏移量,逐次从缓冲区中取出待显示数据显示。
[0031] 通过修改从缓冲区中获取待显示数据时的起始点位置,可以达到使当前时间对应的歌词显示在显示区域中的不同位置的效果。
[0032] 下面结合各个附图对本发明实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细的阐述。
[0033] 如图1所示,本发明实施例的主要实现原理流程如下:
[0034] 步骤10,根据待播放歌曲对应的歌词文件、以及显示区域的尺寸,创建缓冲区,该缓冲区中以显示区域中第一方向上每行像素的像素数据占用的比特数为偏移量,按照所述歌词文件中时间标签标识的时间先后顺序存储每个时间标签对应的歌词文字的像素数据;
[0035] 步骤20,播放歌曲时,在当前播放时间到达每个时间标签标识的时间时,执行: [0036] 以预定刷屏周期,逐次从缓冲区中取出待显示数据并显示,所述待显示数据的比特数为显示区域包含的全部像素的像素数据占用的比特数,取出待显示数据时的起点位置为前一次取出待显示数据的起点位置与偏移量之和,偏移量为当前滚屏速度与刷屏周期之间的乘积,所述当前滚屏速度为缓冲区中该时间标签对应歌词的像素数据占用的总比特数除以时间顺序上下一时间标签标识的时间与该时间标签标识的时间之差的结果,其中第一次从缓冲区中取出待显示数据时的起始位置为缓冲区的起点位置。
[0037] 下面将依据本发明上述发明原理,详细介绍一个实施例来对本发明方法的主要实现原理进行详细的阐述和说明。
[0038] 请参照附图2,为本发明实施例移动终端播放歌曲时的处理流程图。 [0039] 步骤201,判断移动终端中是否存在待播放歌曲对应的歌词文件,在判断出移动终端中存在待播放歌曲对应的歌词文件时,进入步骤202,否则处理结束,直接播放歌曲不显示歌词;
[0040] 在本实施例中以LRC格式歌词文件为例,假定存储待播放歌曲《大海啊,故乡》的音频数据的文件为“大海啊,故乡.mp3”,对应的LRC格式歌词文件为同一存储路径下的文件“大海啊,故乡.lrc”,当然歌词文件也可以是除了“lrc”之外以其他预定字符或字符串为后缀的文件,只要具备与LRC格式歌词文件类似的内容结构即可,具体如何确定是否存在待播放歌曲对应的LRC格式歌词文件的方法属于现有技术,在这里不再赘述。 [0041] 该LRC格式歌词文件的内容如表1所示,其中第1行至第5行为标识标签,第6行至第21行为时间标签和时间标签对应的歌词。
[0042] 表1LRC格式歌词文件内容示例
[0043]
[0044] 步骤202,解析待播放歌曲对应的LRC格式歌词文件,获得各个时间标签; [0045] 解析歌词文件“大海啊,故乡.lrc”,将其中每个时间标签包含的时间信息作为一个数组元素,存储在数组time_tag[]中,例如time_tag[1]=01:38.29,time_tag[2]=00:21.62,time_tag[3]=01:43.06,time_tag[4]=00:27.18,......,time_tag[34]=
03:04.43。
[0046] 步骤203,按照时间先后顺序,对步骤202获得的各时间标签进行排序; [0047] 按照每个数组元素所标识的时间的先后顺序,对数组time_tag[]中的元素进行排序,排序后的数组time_tag[]为{time_tag[2]=00:21.62,time_tag[4]=00:27.18,time_tag[6]=00:31.91,time_tag[8]=00:36.59...}。
[0048] 步骤204,根据步骤203排序后的各时间标签对应的歌词、以及显示区域的尺寸,创建缓冲区,该缓冲区中以显示区域中水平方向上(即宽度方向上)每行像素的像素数据占用的比特数为偏移量;
[0049] 确定缓冲区中的数据的具体过程如下:
[0050] 针对排序后的数组time_tag[]中的每个元素,根据该元素对应的歌词,以及预定的字体信息,确定所述歌词中每个字符的像素数据,并以显示区域中每行像素的像素数据占用的比特数为偏移量,将确定出的该歌词的像素数据在所述排序后的数组time_tag[]中该元素相邻的前一元素对应的歌词的像素数据的存储位置之后紧邻的位置上存储。具体如何根据歌词字符来确定对应的像素数据的过程为现有技术在这里不再赘述。 [0051] 请参照附图3a,为移动终端面板上的显示区域的示意图,显示区域的宽度记为W、高度记为H。附图3b为缓冲区中存储的歌词像素数据的示意图,其中每个小方块代表一个像素的像素数据,在本实施例中为了简明起见用四个像素来显示一个文字,当然在实际中为了美化显示效果,往往需要使用很多像素来显示一个文字,例如16个像素、64个像素等等。同样出于表达简明方面的考虑,仅在附图3b中绘制出了缓冲区中排序后的数组time_tag[]中的前六个元素的像素数据。
[0052] 步骤205,播放歌曲时,执行步骤206;
[0053] 步骤206,在当前播放时间到达排序后的数组time_tag[]中每个元素标识的时间时,执行:
[0054] 假定当前播放时间到达排序后的数组time_tag[]中的第i个数组元素标识的时间(为了后续描述简明起见,称之为当前时间标签标识的时间)时,首先,在当前播放时间到达排序后的数组time_tag[]中第i+1个数组元素(即时间顺序上下一个时间标签)标识的时间之前的时间段内,将所述缓冲区中该时间标签对应的歌词的像素数据修改为突出显示效果、且将其他时间标签对应的歌词的像素数据修改为非突出显示效果。 [0055] 在实施时,可以在当前播放时间到达排序后的数组time_tag[]中第i个元素标识的时间时,设定一个颜色更新定时器TIMER,如附图4a所示,该定时器的定时时间为排序后的数组time_tag[]中第i个元素标识的时间与排序后的数组time_tag[]中第i+1个元素标识的时间之差,启动颜色更新定时器,在颜色更新定时器的定时时间到达后,将排序后的数组time_tag[]中第i+1个元素对应歌词的像素数据修改为突出显示效果,将排序后的数组time_tag[]中第i个元素对应歌词的像素数据修改为非突出显示效果,如附图4b所示。 [0056] 具体可以通过修改像素数据值的方式来改变显示效果,在需要将一个字符对应的像素数据修改为突出显示效果时,判断该字符对应的每个像素的像素数据是否为背景色数据,若是,不修改;否则,将该像素的像素数据增加或减小一个预定值。例如背景像素数据值为(0(R),0(G),0(B)),需要将“小”对应的像素数据修改为突出显示效果时,若字符“小”对应的一个像素的像素数据为(123(R),123(G),123(B)),则该像素数据不为背景色,而是非突出显示效果,则将该像素的像素数据中的每个色彩分量值都减100以实现突出显示效果,修改后的该像素的像素数据为(23(R),23(G),23(B))。需要将一个字符对应的像素数据修改为非突出显示效果时,处理过程类似,在这里不再赘述。
[0057] 步骤207,以预定刷屏周期,逐次从缓冲区中取出一个包含的比特数与待显示区域对应的像素数据相同的待显示数据并显示;
[0058] 假定当前播放时间到达排序后的数组time_tag[]中第i个元素标识的时间,显然为了使当前时间标签(排序后的数组time_tag[]中的第i个数组元素)对应的歌词能够显示在显示区域中,应当在当前播放时间到达时间顺序上下一个时间标签(排序后的数组time_tag[]中的第i+1个数组元素对应的时间)之前,每次刷屏时取得的待显示数据都应包含当前时间标签对应歌词的像素数据。刷屏周期时间越短,用户体验到的滚动显示效果越流畅连贯。一般来说,每次刷屏时取得的待显示数据都应在前次取得的待显示数据的基础上增加一个的偏移 量,以使用户感受到当前时间标签对应的歌词自下而上滚动。附图5a、附图5b为刷屏过程中先后两次从缓冲区中获取待显示数据的示意图,附图5a、附图5b中的黑色区域代表当前时间标签对应的歌词的像素数据,阴影矩形代表每次从缓冲区中取出的待显示数据,可见刷屏相当于从缓冲区中以一个固定尺寸的窗口逐次推移获取待显示数据,该窗口的固定尺寸为显示区域所占用的像素数据的比特数。采用这种先确定上述结构的缓冲区,在后续显示歌词数据时确定待显示数据的好处在于在刷屏时无需再根据每个时间标签对应歌词的像素数据来拼接待显示数据,只需将从缓冲区中取出的待显示数据直接显示即可。
[0059] 较佳地,为了获得匀速滚屏的显示效果,在当前播放时间到达时间顺序上下一个时间标签之前的时间段内,每次预定刷屏周期到达时,从缓冲区中取得的待显示数据时的起始点都应在前次取得待显示数据时的起始点的基础上增加一个固定的偏移量vi*timer,其中vi为在到达时间顺序上下一个时间标签标识的时间之前的在竖直方向上的滚屏速度 [0060]
[0061] 其中hi为当前时间标签对应歌词的像素数据在显示区域显示时高度方向中所需占用的像素数,n为存储每个像素的像素数据所需占用的比特数,timer为预定刷屏周期时间。
[0062] 较佳地,为了符合通常人们的阅读习惯,在当前播放时间到达每个时间标签标识的时间时,该时间标签对应的歌词恰好显示能在显示区域竖直方向上的中点,在步骤202确定缓冲区时,在排序后的数组time_tag[]中的第一个元素对应的歌词的像素数据之前,预先存储宽度为W,高度为H/2的背景色区域的像素数据,如附图6a所示,更进一步,为了在当前播放时间到达时间顺序上的第一个时间标签标识的时间时,该第一个时间标签对应的歌词恰好滚动至显示区域竖直方向上的中点,可以在附图6a中排序后的数time_tag[]中的第一 个元素对应的歌词的像素数据之前、且宽度为W,高度为H/2的背景色区域的像素数据之后,插入一个宽度为W,高度为h的背景色区域的像素数据,如附图6b所示。 [0063] 在从开始播放歌曲到当前播放时间到达排序后的数组time_tag[]中的第一个元素标识的时间之前的时间段内,每次到达预定刷屏周期时间时,从缓冲区中获取待显示数据的起点位置s_begin为:
[0064] s_begin′=s_begin+v0*timer,其中v0为从开始播放歌曲到当前播放时间到达排序后的数组time_tag[]中的第一个元素标识的时间之前的时间段内的滚屏速度,数值上为v0=W*h*n/time_tag[1],s_begin的初始值为缓冲区的起点,;此外在当前播放时间到达排序后的数组time_tag[]中的第一个元素标识的时间之前的时间段内,还可以滚动地显示标识标签对应的歌曲背景信息。
[0065] 在上述步骤203中,播放歌曲时,在当前播放时间到达每个时间标签标识的时间时,逐次从缓冲区中取出待显示数据时,读取数据的起始点s_begin为
[0066] s_begin′=s_begin+vi*timer
[0067] 其中vi为从当前播放时间到达排序后的数组time_tag[]中的第i个数组元素标识的时间到当前播放时间到达排序后的数组time_tag[]中的第i+1个数组元素标识的时间的时间段内的滚屏速度,数值上为vi=W*hi*n/time_tag[i+1]-time_tag[i];其中hi为当前时间标签对应歌词的像素数据在显示区域显示时高度方向中所需占用的像素数,timer为预定的刷屏周期时间。从物理意义上看上述公式的含义为本次获取待显示数据的起始点为上一次获取显示数据时的起始点与偏移量之和,偏移量为竖直方向上当前滚屏速度与刷屏周期时间的乘积。
[0068] 显然,如果只希望实现显示多行歌词、且滚动显示的效果,在步骤205之后,只需执行步骤207即可,无需执行步骤206。
[0069] 本发明实施例是以确定缓冲区时,以显示区域水平方向上每行像素的像素数据占用的比特数为偏移量来存储歌词像素数据,播放歌曲时,在显示区域中 竖直方向滚动刷屏显示当前歌词数据为例来描述方案的。采用类似的方法,在确定缓冲区时,如果以显示区域竖直方向上每行像素的像素数据占用的比特数为偏移量来存储歌词像素数据,播放歌曲时,采用类似方法可实现在显示区域中水平方向滚动刷屏显示当前歌词数据的效果。 [0070] 本发明实施例提供的移动终端播放歌曲的方案除了播放歌曲之外,同样适用于播放课件、演讲录音等音频文件时显示对应的文字。
[0071] 本发明实施例提供的移动终端在播放歌曲时显示歌词的方案,根据歌词文件中各时间标签对应的歌词、以及显示区域的尺寸,设置一个以显示区域中每行像素的像素数据占用的比特数为偏移量存储数据缓冲区,该缓冲区中按时间标签标识的时间先后顺序依次存储各时间标签对应的歌词的点阵像素数据。播放歌曲时,以预定刷屏周期,逐次从缓冲区中取出一个包含当前时间标签对应歌词的像素数据在内的、大小与显示区域包含的所有像素的像素数据比特数相同的数据,显示在显示区域中。通过上述过程即可实现在播放歌曲时,显示多行歌词、且滚动显示的效果。
[0072] 此外,还可以在每个时间标签标识的时间到达时,将缓冲区中该时间标签对应歌词的像素数据修改为高亮显示效果,与前述方案相结合,以此来实现同时显示前后几句歌词、同时高亮显示当前歌词的目的。
[0073] 相应地,本发明实施例还提供了一种可播放歌曲的移动终端,如图7所示,该移动终端包括缓冲区创建单元701和显示单元702,具体如下:
[0074] 缓冲区创建单元701,根据待播放歌曲对应的歌词文件、以及显示区域的尺寸,创建缓冲区,该缓冲区以显示区域中第一方向上每行像素的像素数据占用的比特数为第一偏移量,按照所述歌词文件中时间标签标识的时间先后顺序存储每个时间标签对应的歌词的像素数据;
[0075] 显示单元702,用于在播放歌曲时,在当前播放时间到达一个时间标签标识的时间时,以预定刷屏周期,逐次从缓冲区创建单元创建的缓冲区中取出待显示数据并显示,所述待显示数据的比特数为显示区域包含的全部像素的像素 数据占用的比特数,取出待显示数据的起点位置为前一次取出待显示数据的起点位置与第二偏移量之和,所述第二偏移量为在与所述第一方向垂直的第二方向上当前滚屏速度与预定刷屏周期的乘积,所述当前滚屏速度为缓冲区中该时间标签对应歌词的像素数据占用的总比特数除以时间顺序上下一时间标签标识的时间与该时间标签标识的时间之差的结果,其中第一次从缓冲区中取出待显示数据时的起始位置为缓冲区的起点位置。
[0076] 较佳地,请参照附图8,附图7中的移动终端还包括显示效果调整单元801,用于播放歌曲时,在当前播放时间到达每个时间标签标识的时间时,执行:在当前播放时间到达时间顺序上下一个时间标签标识的时间之前,将所述缓冲区中该时间标签对应的歌词的像素数据修改为突出显示效果、且将其他时间标签对应的歌词的像素数据修改为非突出显示效果;
[0077] 所述显示单元702在显示效果调整单元修改缓冲区中的像素数据之后,以预定刷屏周期,逐次从缓冲区中取出待显示数据并显示。
[0078] 较佳地,图7、图8中的显示单元具体包括获取子单元和显示执行子单元,其中: [0079] 获取子单元,用于播放歌曲时,在当前播放时间到达每个时间标签标识的时间时以预定刷屏周期,逐次从缓冲区中取出待显示数据,所述待显示数据的比特数为显示区域包含的全部像素的像素数据占用的比特数,取出待显示数据的起点位置为前一次取出待显示数据的起点位置与第二偏移量之和,所述第二偏移量为在与所述第一方向垂直的第二方向上当前滚屏速度与预定刷屏周期的乘积,所述当前滚屏速度为缓冲区中该时间标签对应歌词的像素数据占用的总比特数除以时间顺序上下一时间标签标识的时间与该时间标签标识的时间之差的结果,其中第一次从缓冲区中取出待显示数据时的起始位置为缓冲区的起点位置;
[0080] 显示执行子单元,用于将获取子单元获取的待显示数据显示到显示区域中。 [0081] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,如:ROM/RAM、磁碟、光盘等。
[0082] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。