CN102148048A - 歌词显示方法及装置 - Google Patents
歌词显示方法及装置 Download PDFInfo
- Publication number
- CN102148048A CN102148048A CN 201110122247 CN201110122247A CN102148048A CN 102148048 A CN102148048 A CN 102148048A CN 201110122247 CN201110122247 CN 201110122247 CN 201110122247 A CN201110122247 A CN 201110122247A CN 102148048 A CN102148048 A CN 102148048A
- Authority
- CN
- China
- Prior art keywords
- lyrics
- viewing area
- dynamic display
- display area
- static viewing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明提供一种歌词显示方法及装置,其中方法包括:确定当前播放行;确定动态显示区域在静态显示区域的当前播放行区域中的起始位置,其中,所述静态显示区域中滚动显示有一行或多行歌词;依照当前播放行的字符单元的排列顺序,从所述起始位置开始,在所述动态显示区域依次显示当前播放行的各个字符单元对应的动画。本发明提供的方法及装置中,每个字符单元的动画的执行速度反映了歌词的节奏,便于用户跟唱,实现了准确的歌词逐字显示。
Description
技术领域
本发明涉及文本显示技术,尤其涉及一种歌词显示方法及装置。
背景技术
目前,很多音乐播放器播放歌曲时,采用逐行显示歌词的方式,例如,当歌曲播放到某一行歌词时,将该行歌词整体高亮显示,这样用户就可以跟唱当前行的歌词。
对于这种歌词显示方式,由于是整行歌词高亮显示,用户需要在熟悉整行歌词的节奏的情况下才能很好地跟唱完一行歌词。如果用户对于一行歌词中的某一些字或单词的节奏不熟悉,则无法很好地跟唱。
可见,提供一种能够逐字显示歌词的歌词显示方法是现有技术中亟待解决的问题。
发明内容
本发明针对现有技术中存在的问题,提供一种歌词显示方法及装置,能够实现歌词的逐字显示。
本发明提供了一种歌词显示方法,包括:
确定当前播放行;
确定动态显示区域在静态显示区域的当前播放行区域中的起始位置,其中,所述静态显示区域中滚动显示有一行或多行歌词;
依照当前播放行的字符单元的排列顺序,从所述起始位置开始,在所述动态显示区域依次显示当前播放行的各个字符单元对应的动画。
本发明还提供了一种歌词显示装置,包括:
第一确定模块,用于确定当前播放行;
第二确定模块,用于确定动态显示区域在静态显示区域的当前播放行区域中的起始位置,其中,所述静态显示区域中滚动显示有一行或多行歌词;
处理模块,分别与所述第一确定模块和第二确定模块连接,用于依照所述第一确定模块确定的当前播放行的字符单元的排列顺序,从所述第二确定模块确定的起始位置开始,在所述动态显示区域依次显示当前播放行的各个字符单元对应的动画。
本发明实施例提供的方法及装置中,分别设置了静态显示区域和动态显示区域,在静态显示区域滚动显示一行或多行歌词的同时,在动态显示区域依次显示当前播放行的各个字符单元对应的动画。动态显示区域的位置是位于静态显示区域的当前播放行区域中,这样,对于当前播放行,在动态显示区域中会同步显示动画,动画分别与当前播放行的各个字符单元对应,实现了准确的歌词逐字显示。
通过以下参照附图对优选实施例的说明,本申请的上述以及其它目的、特征和优点将更加明显。
附图说明
图1示例性示出本发明歌词显示方法实施例一的流程图;
图2示例性示出本发明歌词显示方法实施例二的流程图;
图3示例性示出单个字符单元的动画显示效果的一个示意图;
图4示例性示出单个字符单元的动画显示效果的另一个示意图;
图5示例性示出静态显示区域中歌词滚动了一行的显示效果的示意图;
图6示例性示出本发明实施例中预先获取歌词数据的一个示例的流程图;
图7示例性示出本发明实施例中预先获取歌词数据的另一个例子的流程图;
图8-图10分别示出了字体大小和静态显示区域宽度不同时,同一行歌词字符串经过解析后的显示效果图;
图11和图12分别示出当前播放行区域位于静态显示区域第1行和第3行的显示效果图;
图13示例性示出本发明歌词显示装置实施例一的结构示意图。
具体实施方式
图1示例性示出本发明歌词显示方法实施例一的流程图,包括:
步骤101、确定当前播放行。
本发明的实施例中,可以预先获取多行歌词数据,每行歌词数据包括该行歌词的起始时间、结束时间、歌词内容和歌词内容中每个字符单元的时间值。其中,每个字符单元的时间值指的是每个字符单元对应的播放时间长度。歌词内容包括一个或多个字符单元。
本发明实施例中,字符单元可以是一个中文字或者一个英文单词。如下为一行中文歌词数据的例子:
′000:27.16′,′000:28.87′,′让我怎么说′,′180,260,260,480,530′。
在上述的这行歌词数据中,起始时间是“000:27.16”,结束时间是“000:28.87”,歌词内容是“让我怎么说”,歌词内容包括“让”、“我”、“怎”、“么”、“说”这五个字符单元,每个字符单元对应的时间值分别是180毫秒、260毫秒、260毫秒、480毫秒和530毫秒。在本发明的实施例中,以字符单元的播放时间长度的单位是毫秒为例来说明。
步骤101中,具体可以预先设置时间间隔和当前播放行,以预设时间间隔读取当前播放时间,在当前播放时间大于或等于预设播放行的起始时间时,确定预设播放行为当前播放行。
步骤102、确定动态显示区域在静态显示区域的当前播放行区域中的起始位置,其中,静态显示区域中滚动显示有一行或多行歌词。当前播放行区域是静态显示区域中用于显示当前播放行的区域。
步骤103、依照当前播放行的字符单元的排列顺序,从起始位置开始,在动态显示区域依次显示当前播放行的各个字符单元对应的动画。
本发明实施例一提供的方法中,分别设置了静态显示区域和动态显示区域,在静态显示区域滚动显示一行或多行歌词的同时,在动态显示区域依次显示当前播放行的各个字符单元对应的动画。动态显示区域的位置是位于静态显示区域的当前播放行区域中,这样,对于当前播放行,在动态显示区域中会同步显示动画,动画分别与当前播放行的各个字符单元对应,实现了准确的歌词逐字显示。
在实施例一提供的方法中,在步骤102之后,步骤103之前,还可以包括:从预先获取的歌词数据中提取出当前播放行的每个字符单元以及当前播放行中每个字符单元的时间值;计算每个字符单元的宽度。
根据本发明的一个实施例,步骤103中,各个字符单元对应的动画为将动态显示区域延长一个宽度等于各个字符单元的宽度从而使得动态显示区域中的字符单元逐渐显示出来的动画,各个字符单元对应的动画的执行时间等于各个字符单元的时间值。
其中,动态显示区域显示的字符单元的字体颜色与静态显示区域显示的字体颜色可以不同。
动态显示区域采用的歌词数据与静态显示区域采用的歌词数据可以相同,这样,可以使得动态显示区域和静态显示区域显示字符单元的字体、字体大小和字符间距相同,达到比较好的显示效果。
预设的静态显示区域的字体、字体大小以及歌词内容的对齐方式可以分别与预设的动态显示区域的字体、字体大小以及歌词内容的对齐方式相同。
静态显示区域的背景色与动态显示区域的背景色可以相同,优选地,静态显示区域的背景色和动态显示区域的背景色都可以是透明的。静态显示区域的显示与动态显示区域的显示可以分别独立进行。
根据本发明的一个实施例,动态显示区域和静态显示区域可以分别通过一个用于显示文本视图的控件来实现。例如,可以采用Apple公司的UILabel控件。
在本发明的实施例中,为了实现歌词的逐字显示,创建了两个显示区域,一个是静态显示区域,一个是动态显示区域,静态显示区域是指显示区域的面积不会变化的区域,动态显示区域是指显示区域的面积会随着当前播放的字符单元的时间值的累加而变化的区域,动态显示区域的面积小于或者等于静态显示区域的面积。如果动态显示区域的面积等于静态显示区域的面积,则动态显示区域与静态显示区域可以重叠。如果动态显示区域的面积小于静态显示区域,则动态显示区域可位于静态显示区域中。在静态显示区域中可以滚动显示一行或多行歌词,动态显示区域则是针对当前播放行的显示区域。动态显示区域的宽度是变化的,从当前播放行的第一个字符单元开始逐个字符单元地延伸到最后一个字符单元,从而形成类似于“拉开窗帘”效果。动态显示区域的高度可以是变化的,也可以是固定的。例如,在当前播放行的歌词的行高是固定的情况下,动态显示区域的高度也是固定的。根据一个实施例,动态显示区域可以是长条形,动态显示区域的高度可以等于静态显示区域的行高。
可以根据预设的静态显示区域的歌词内容的对齐方式、当前播放行的歌词内容的宽度P、静态显示区域的宽度Q以及静态显示区域中当前播放行区域的起始位置确定动态显示区域在静态显示区域的当前播放行区域中的起始位置的坐标(x,y),其中x和y分别是动态显示区域的左上角顶点在静态显示区域中的横坐标和纵坐标。静态显示区域中当前播放行区域的起始位置可以是指当前播放行区域的左上角顶点在静态显示区域中的坐标。例如,如果预设的静态显示区域的歌词内容的对齐方式是左对齐,静态显示区域中当前播放行区域的起始位置的纵坐标是M,则动态显示区域在静态显示区域中的起始位置的坐标(x,y)为(0,M);如果预设的静态显示区域的歌词内容的对齐方式是居中,则动态显示区域在静态显示区域中的起始位置的坐标(x,y)为((Q-P)/2,M);如果预设的静态显示区域的歌词内容的对齐方式是右对齐,则动态显示区域在静态显示区域中的起始位置的坐标(x,y)为((Q-P),M)。上述确定的动态显示区域在静态显示区域中的起始位置的坐标(x,y)均位于当前播放行区域中。
在本申请的实施例中,字符单元的宽度包括字符单元自身的字体宽度以及分配给每个字符单元的间距。根据一个实施例,例如两个字之间的间距为1mm,则分别分配给这两个字的字符间距可均为1/2=0.5mm。
具体而言,有的歌词既包括中文字,又包括英文单词。如果字符单元是中文字,则可以根据预设的静态显示区域的字体大小确定字符单元的宽度。如果字符单元是英文单词,则可以根据预设的静态显示区域的字体大小以及该字符单元包括的英文字母的个数确定字符单元的宽度。例如,如果一个英文单词包括6个字母,则可以获得字符单元的宽度为(每个字母的宽度*6+字符单元的间距)。
在步骤103中,以前述一行中文歌词为例,分别为字符单元“让”、“我”、“怎”、“么”、“说”设置动画1、动画2、动画3、动画4和动画5,动画1、动画2、动画3、动画4和动画5的执行时间分别与各个字符单元的时间值相匹配,这五个动画的延长宽度分别是这五个字符单元的宽度。
依照字符单元的排列顺序,从动态显示区域的起始位置开始,例如从静态区域中位置(0,0)开始,在动态显示区域依次显示各个字符单元对应的动画。具体地,当动态显示区域延长时,动态显示区域中的字符单元逐渐显示出来。由于动态显示区域和静态显示区域的字体颜色不同,所以动态显示区域已显示出的字符单元的字体颜色与静态显示区域中没有被动态显示区域覆盖的字符单元的字体颜色不同。而动态显示区域的延长的速度为每个字符单元的宽度除以每个字符单元的时间值,使得动态显示区域的延长速度与字符单元的播放速度相同,这样,一行歌词中的各个字符单元就能够通过各个动画来标识,从而实现逐字显示。
图2示例性示出本发明歌词显示方法实施例二的流程图。在实施例二中,主要运用了Apple公司提供的iOS(iPhone Operation System,简称iOS)操作系统中的部分控件。
在实施例二中,可以通过使用Apple公司的UITableView控件来填充数据源,即,当滚动控件时动态加载屏幕所显示的歌词行,还可以通过定义UITableView控件中的tableCell来自定义数据显示样式,设置显示高度和背景色等。通过这样的设置,本发明能够实现平滑滚动,性能好,速度快。
在实施例二的方法中,首先通过初始化方法设置静态显示区域的大小和位置,具体地,可以创建一个相同位置和大小的UITableView加入到视图中,设置用于填充数据源的代理。具体设置方式如下:
LrcViewController*lrcview=
[[LrcView alloc]inintWithFrame:CGRectMake(0,0,320,400)];
设置UITableView的背景色就是设置整个歌词显示视图的背景色,可以通过代理方法设置tableCell的行高。歌词显示视图可以包括静态显示区域和动态显示区域。
创建的tableCell里面可以包括两个UILabel,一个UILabel用于创建静态显示区域,另一个UILabel用于创建动态显示区域,可以通过设置这两个UILabel的背景色来设置静态显示区域和动态显示区域的背景色。用于静态显示区域的UILabel的位置和尺寸可以是静态显示区域的位置和尺寸。用于动态显示区域的UILabel的起始位置就是动态显示区域的起始位置,初始尺寸可以是宽为1个像素,高为一行歌词的行高。预先获取的歌词数据作为这两个UILabel的文本值。
实施例二的方法包括:
步骤201、初始化当前播放行ROW,将第0行设置为当前播放行,ROW=0。
步骤202、以预设时间间隔(例如,0.02s)读取当前播放时间,判断当前播放时间是否大于或等于预设的当前播放行ROW的起始时间。如果当前播放时间大于或等于预设的当前播放行ROW的起始时间,则执行步骤203;如果当前播放时间小于预设的当前播放行ROW的起始时间,则跳出循环,等待下一次时间间隔到来,继续读取当前播放时间。
步骤203、根据预设的静态显示区域的歌词内容的对齐方式、当前播放行的歌词内容的宽度、静态显示区域的宽度以及静态显示区域中当前播放行区域的起始位置确定动态显示区域在静态显示区域中的起始位置。例如,预设的歌词内容的对齐方式为左对齐,静态显示区域中当前播放行区域的起始位置的纵坐标为0,在步骤203中确定的动态显示区域的起始位置为(0,0)。
步骤204、提取出第ROW行的每个字符单元以及第ROW行中每个字符单元的时间值,并将当前索引Y设置为0,即Y=0。
在步骤204中,如果没有字符单元,即歌词内容为空,则可以跳出循环,等待下一次时间间隔到来,继续读取当前播放时间。
如果字符单元是中文字,则将一个中文字作为一个字符单元放到数组中。如果字符单元是英文单词,则将英文的字母组合作为一个整体放到数组中,时间值以逗号作为分割符号进行分割。可以分别为每一个字符单元和时间值组成的数据对设置一个索引。各个字符单元对应的索引的顺序与各个字符单元的排列顺序一致。如表一所示为提取出的字符单元、时间值和索引的一个例子。
表一、提取出的字符单元、时间值和索引的一个例子
字符单元 | “让” | “我” | “怎” | “么” | “说” |
时间值 | 180ms | 260ms | 260ms | 480ms | 530ms |
索引 | 0 | 1 | 2 | 3 | 4 |
步骤205、计算索引为Y的字符单元的宽度。具体地,可以采用NSStringsizeWithFont方法计算出字符单元的宽度,NSString sizeWithFont方法是iOS系统中提供的一种获取字符串的尺寸的方法,例如能够获取字符串的高度和宽度。
步骤206、设置动画并执行动画,具体为从动态显示区域的起始位置开始延长动态显示区域的宽度。
具体的实现方式可以如下:
[UILabel beginAnimations:@″ViewFlip″context:nil];
[UILabel setAnimationDuration:time/1000.000];
[UILabel setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UILabel setAnimationDelegate:self];
[UILabel setAnimationDidStopSelector:@selector(setKTVTableColor)];
self.lblword.frame=CGRectMake(startPosition,0,totalwordwidth,kSingleLineHeight);
[UILabel commitAnimations];
[self.lblword setNeedsDisplay];
步骤207、动画结束,索引Y加1。
步骤208、判断是否是第ROW行的最后一个字符单元,如果是,执行步骤209;如果不是,执行步骤205,继续下一个字符单元的动画显示。
步骤209、将ROW加1,之后执行步骤202。
图3示例性示出单个字符单元的动画显示效果的一个示意图。静态显示区域11和动态显示区域12的背景色均为透明的,这样,使得静态显示区域和动态显示区域的背景色能够溶为一体。静态显示区域11的字体颜色为黑色,动态显示区域12的字体颜色为灰色。静态显示区域11和动态显示区域12的字体颜色不同,能够使得由于动态显示区域12的延长而在动态显示区域12中已显示出的字符单元与静态显示区域11中未被动态显示区域12覆盖的字符单元区分开来,实际上就是将当前播放行中已播放的字符单元与未播放的字符单元显示出来。在静态显示区域11中显示有三行歌词,分别是“让我怎么说”、“我不知道”和“啊”,“让我怎么说”为当前播放行,当前播放行区域11a示出了静态显示区域11中当前播放行所在的区域。动态显示区域12和静态显示区域11的对齐方式可以相同,以保证动态显示区域12和静态显示区域11的字符单元的布局相同,实现较好的显示效果。在当前播放行的起始时间到来时,开始第一个字符单元的动画显示,即显示字符单元“让”对应的动画。字符单元“让”的宽度为W1,为字符单元“让”设置的动画的显示宽度为W1,动画的执行时间为180ms,箭头13示意动态显示区域12的延长方向。图3中,当动态显示区域12延长时,动态显示区域12中的字符单元“让”逐渐显示出来。
图4示例性示出单个字符单元的动画显示效果的另一个示意图,图中,开始执行字符单元“我”对应的动画,字符单元“我”的宽度为W2,为字符单元“我”设置的动画的显示宽度为W2,动画的执行时间为260ms。
图5示例性示出静态显示区域中歌词滚动了一行的显示效果的示意图。与图3和图4相比较,静态显示区域12的歌词发生了滚动,图5中的当前播放行发生了变化,变为“我不知道”这一歌词内容对应的行。
在图3-图5中,为了解释动态显示区域12和静态显示区域11中字符单元的显示效果,模仿立体图的形式,将动态显示区域12从静态显示区域中分离出来。实际上,动态显示区域12应当位于静态显示区域11的当前播放行区域11a中。
本发明实施例二提供的方法中,利用两个UILabel来分别实现静态显示区域的歌词显示和动态显示区域的动画与歌词显示,这两个UILabel重叠,动态显示区域的延长时间与静态显示区域的字符单元的时间值相同,这样就能够通过动态显示区域的延长动画实现歌词的逐字显示,从而能够体现当前播放行中单个字符单元的播放速度,便于用户跟唱。
在本发明前述实施例中,在进行歌词显示之前还可以包括获取歌词数据的步骤。该歌词数据可以是通常的卡拉OK歌词制作工具制作的初始歌词字符串。格式如下:
karaoke.Add(′99:99.999′,′88:88.888′,′歌词′,′时间值′[,′提示字′]);
其中,karaoke.Add是卡拉OK歌词制作工具定义歌词开头标识。′99:99.999′是本句歌词起始时间。′88:88.888′是本句歌词结束时间。′歌词′是本句歌词所显示的所有字符单元,英文如′[Its][my][life]′是用方括号来定义一个字符单元,一个字符单元占一个时间值。′时间值′可以是以毫秒为单位的显示一个字符单元从左到右的时间长度。′提示字′不是歌词的必须的组成部分。
中文歌词的例子如下:
karaoke.add(′000:27.16′,′000:28.87′,′让我怎么说′,′180,260,260,480,530′);
karaoke.add(′000:30.49′,′000:32.28′,′我不知道′,′300,350,570,570′);
英文歌词的例子如下:
karaoke.add(′00:18.267′,′00:20.299′,′[Sometimes][I][feel][like][I][am]′,′199,605,427,198,333,270′);
karaoke.add(′00:20.505′,′00:22.334′,′[Sailing][on][a][sunken][dream]′,′612,205,188,384,440′);
中英文混排歌词的例子如下:
karaoke.add(′00:17.038′,′00:20.347′,′我不是[F][four]啊哈′,′329,379,531,870,545,310,345′);
karaoke.add(′00:20.833′,′00:24.076′,′爱你[forever]啊哈′,′523,458,1726,210,326′);
从如上的例子中可以看出,通常的卡拉OK歌词制作工具制作完成的初始歌词字符串中,每行歌词字符串包括该行歌词的起始时间、结束时间、歌词内容和歌词内容中各个字符单元的时间值。可以将这些数据存储到一个数组中作为歌词数据。
有时在静态显示区域和动态显示区域预设的字体大小与采用通常的卡拉OK歌词制作工具制作完成的初始歌词字符串中的字体大小不一致,如果采用初始歌词字符串作为歌词数据,则有可能导致不能正常显示歌词。例如,如果静态显示区域和动态显示区域的预设的字体尺寸大于初始歌词字符串的字体,则可能导致显示时一行歌词不能完整地显示在静态显示区域,并且当动态显示区域全部展开时,一行歌词也不能完整地显示在动态显示区域。
为了避免上述问题出现,本发明提供的方法中,可以预先对采用通常的卡拉OK歌词制作工具制作完成的初始歌词字符串进行解析,使得解析后的歌词数据能够在预设大小的静态显示区域和动态显示区域以预设字体大小显示。
对于本申请前述各实施例,在确定当前播放行之前,还可以包括:根据预设的静态显示区域和动态显示区域的字体、字体大小以及对齐方式,将初始歌词字符串进行解析,获得歌词数据,使得解析后的歌词数据与静态显示区域和动态显示区域的字体、字体大小以及对齐方式相匹配。
图6示例性示出本发明实施例中预先获取歌词数据的一个示例的流程图,包括:
步骤301、去掉初始歌词字符串中的与歌词内容无关的字符,根据初始歌词字符串的歌词开头标识将初始歌词字符串分割为多行歌词字符串。
步骤302、将各行歌词字符串分成起始时间、结束时间、歌词内容和歌词内容中每个字符单元的时间值这四个部分。
步骤303、对于每一行歌词字符串,根据预设的静态显示区域的字体大小,确定歌词内容的宽度。
在本发明的实施例中,预设的静态显示区域的字体、字体大小以及对齐方式可以分别与预设的动态显示区域的字体、字体大小以及对应方式相同。如果获得的歌词数据与预设的静态显示区域的字体、字体大小以及对齐方式相匹配,则该歌词数据也与预设的动态显示区域的字体、字体大小以及对齐方式相匹配。在本实施例中,以歌词数据与预设的静态显示区域的字体、字体大小以及对齐方式相匹配为例进行介绍。
在步骤303中,具体地,对于每一行歌词字符串中的中文字,根据预设的静态显示区域的字体大小以及歌词字符串中字符单元的个数,确定歌词内容的宽度;
对于每一行歌词字符串中的英文单词,去掉英文单词两侧的组合标记,并为该英文单词添加一个空格,根据预设的静态显示区域的字体大小、每个英文单词中字母的个数、英文单词的个数以及空格的个数,确定歌词内容的宽度。
步骤304、判断歌词内容的宽度是否大于静态显示区域的宽度。如果歌词内容的宽度小于或等于静态显示区域的宽度,执行步骤305;如果歌词内容的宽度大于所述静态显示区域的宽度,执行步骤306。
步骤305、将该行歌词字符串的起始时间、结束时间、歌词内容和歌词内容中每个字符单元的时间值存储到数组中形成一行歌词数据。
步骤306、将该行歌词字符串拆分成多个子字符串,各个子字符串的歌词内容的宽度小于或等于静态显示区域的宽度,根据各个子字符串的歌词内容中所有字符单元的时间值总和确定各个子字符串的起始时间和结束时间,并分别将各个子字符串的起始时间、结束时间、歌词内容和歌词内容中每个字符单元的时间值存储到数组中形成一行歌词数据。
在步骤306中,将该行歌词字符串拆分成多个子字符串可以包括:
步骤306a、建立临时字符串。
步骤306b、从该行歌词字符串中提取字符单元,并判断将提取出的字符单元添加到临时字符串是否会使临时字符串的宽度大于静态显示区域的宽度;如果将提取出的字符单元添加到所述临时字符串会使临时字符串的宽度小于或等于静态显示区域的宽度,则执行步骤306c;如果将提取出的字符单元添加到临时字符串之后会使临时字符串的宽度大于静态显示区域的宽度,则执行步骤306d。
步骤306c、将提取出的字符单元添加到临时字符串,并继续从该行歌词字符串中提取还未被添加到临时字符串的字符单元。
步骤306d、将已经添加到所述临时字符串的字符单元组成一个子字符串,清空临时字符串,继续从该行歌词字符串中提取还未被添加到临时字符串的字符单元。
在步骤306中,根据各个子字符串的歌词内容中所有字符单元的时间值总和确定各个子字符串的起始时间和结束时间,可以包括:拆分出的第一个子字符串的起始时间确定为第一个子字符串对应的歌词字符串的起始时间,结束时间确定为第一个子字符串的起始时间与第一个子字符串的歌词内容中所有字符单元的时间值总和的和;其余的子字符串的起始时间确定为拆分出的相邻上一个子字符串的结束时间,结束时间确定为其余子字符串自身的起始时间与自身的歌词内容中所有字符单元的时间值总和的和。
图7示例性示出本发明实施例中预先获取歌词数据的另一个例子的流程图,包括:
步骤401、把初始歌词字符串传送到用于解析的模块。
步骤402、根据初始歌词字符串的歌词开头标识“karaoke.add(”将初始歌词字符串分割为多行歌词字符串,将分割成的多行歌词字符串存储到数组里。如果初始歌词字符串中存在与歌词无关的一些特殊字符,例如”\r”,”\n”,”&”等,可以将这些特殊字符去掉。
步骤403、取出数组中一行歌词字符串。
步骤404、判断是否是最后一行歌词字符串,如果是,结束解析;如果不是,执行步骤405。
步骤405、将取出的该行歌词字符串分成起始时间、结束时间、歌词内容和歌词内容中的每个字符单元的时间值这四部分,具体地,可以以’,这一特殊字符把取出的该行歌词字符串分为起始时间、结束时间、歌词内容和歌词内容中的每个字符单元的时间值这四部分。
步骤406、判断该行歌词内容是否为空,如果该行歌词为空,执行步骤403,继续取出下一行初始歌词字符串;如果该行歌词内容不为空,执行步骤407。
步骤406是歌词内容容错处理的步骤,通过该行歌词内容为空,则说明该行歌词有错误,可以直接跳转到步骤403,继续下一行歌词字符串的处理。
步骤407、去掉歌词内容中英文单词两侧的组合标记,例如方括号,并为该英文单词添加一个空格。
步骤408、判断是否需要换行,如果需要换行,则执行步骤409;如果不需要换行,则保存该行歌词字符串,具体地,可以将该行歌词字符串的起始时间、结束时间、歌词内容和歌词内容中每个字符单元的时间值存储到数组中形成一行歌词数据,然后执行步骤403。
在步骤408中可以根据预设的静态显示区域的字体大小确定歌词内容的宽度,将歌词内容的宽度与静态显示区域的宽度比较,如果歌词内容的宽度小于或等于静态显示区域的宽度,则确定不需要换行。如果歌词内容的宽度大于静态显示区域的宽度,则确定需要换行。
其中,可以通过NSString sizeWithFont方法得出歌词内容的宽度。
步骤409、建立临时字符串a。
步骤410、从步骤403取出的初始歌词字符串中提取出一个字符单元(可以是一个中文字或一个英文单词)。
步骤411、判断提取出的字符单元是否是步骤403中取出的初始字符串中的最后一个字符单元;如果不是,执行步骤412;如果是,则将提取出的字符单元添加到临时字符串a,将已经添加到临时字符串a中的字符单元组成一个子字符串,保存该子字符串,具体包括保存该子字符串的起始时间、结束时间、歌词内容和歌词内容中每个字符单元的时间值这四部分,然后结束该行初始歌词字符串的拆分处理,并转到步骤403,继续取出下一行初始歌词字符串。
步骤412、判断临时字符串a是否要换行;如果需要换行,则执行步骤413;如果不需要换行,则执行步骤410。
在步骤412中,可以判断将提取出的字符单元添加到临时字符串a之后是否会使临时字符串a的宽度大于静态显示区域的宽度,如果将提取出的字符单元添加到临时字符串a之后不会使临时字符串a的宽度大于静态显示区域的宽度,则确定不需要换行;如果将提取出的字符单元添加到临时字符串a之后会使临时字符串a的宽度大于静态显示区域的宽度,则确定需要换行。
步骤413、将已添加到临时字符串a中的字符单元组成一个子字符串,确定该子字符串的起始时间和结束时间,保存该字字符串,具体地,保存该子字符串的起始时间、结束时间、歌词内容和歌词内容中每个字符单元的时间值这四部分,清空临时字符串a,然后执行步骤410,继续提取还未添加到临时字符串a的字符单元。
下面通过具体的例子来说明如何将采用通常的卡拉OK制作工具制作成的初始歌词字符串进行解析。
仍然以如下的歌词字符串为例:
karaoke.add(′000:27.16′,′000:28.87′,′让我怎么说′,′180,260,260,480,530′);
karaoke.add(′000:30.49′,′000:32.28′,′我不知道′,′300,350,570,570′);
首先,根据歌词开头标识“karaoke.add(”将初始歌词字符串分割为两行行歌词字符串:
(′000:27.16′,′000:28.87′,′让我怎么说′,′180,260,260,480,530′)
(′000:30.49′,′000:32.28′,′我不知道′,′300,350,570,570′)
并将这两行歌词字符串存储到数组中。
取出数组中的第一行歌词字符串,将该行歌词字符串分成′000:27.16′,′000:28.87′,′让我怎么说′,′180,260,260,480,530′这四部分。由于该行歌词中的歌词内容不为空,因此,继续后续步骤。
该行歌词的歌词内容中不包括英文单词,无需进行去掉方括号和加入空格的步骤。
假设第一行歌词字符串需要换行。假设静态显示区域的宽度为3cm,按照预设设置的字体,每个字符单元的宽度为1.1cm,第一行歌词字符串包括5个字符单元,歌词内容的宽度大于静态显示区域的宽度,因此,确定需要换行。需要说明的是,该例子中以字符单元的宽度单位以及静态显示区域的宽度的单位是cm为例来介绍,字符单元的宽度的单位以及静态显示区域的宽度的单位也可以是像素等。
建立临时字符串a。从第一行歌词字符串中取出第一个字符单元“让”,该字符单元不是第一行歌词字符串中的最后一个字符单元,继续进行后续步骤。
如果将第一个字符单元“让”添加到临时字符串a,不会使得临时字符串a的宽度大于静态显示区域的宽度,不需要换行。
以此类推,继续提取第二个字符单元“我”和第三个字符单元“怎”。
如果将第三个字符单元“怎”添加到临时字符串a会使得临时字符串a的宽度大于静态显示区域的宽度,则将临时字符串a中已添加的两个字符单元“让”和“我”组成第一子字符串,将第一子字符串的起始时间确定为第一行初始字符串的起始时间′000:27.16′,将第一子字符串的结束时间确定为第一子字符串的起始时间加上第一子字符串的所有字符单元的时间值的总和,即′000:27.16′+180+260=′000:27.600′,将第一子字符串的起始时间、结束时间、歌词内容(即,“让”和“我”这两个字符单元)以及每个字符单元的时间值(即,′180′和′260′)保存。
清空临时字符串a,然后采用类似的方法接着提取还未添加到临时字符串a的字符单元,即继续提取第三个字符单元“怎”和第四个字符单元“么”。如果将第五个字符单元“说”添加到临时字符串a会使得临时字符串a的宽度大于静态显示区域的宽度,则将临时字符串中已添加的两个字符单元“怎”和“么”组成一个第二子字符串,将第二子字符串的起始时间确定为第一子字符串的结束时间′000:27.600′,将第二子字符串的结束时间确定为′000:27.600′+260+480=′000:28.340′,将第二子字符串的起始时间、结束时间、歌词内容(即,“怎”和“么”这两个字符单元)以及每个字符单元的时间值(即,′260′和′480′)保存。
清空临时字符串a,然后采用类似的方法接着提取第五个字符单元“说”,由于第五个字符单元是第一行歌词字符串的最后一个字符单元,因此将“说”组成一个第三子字符串,将第三子字符串的起始时间确定为第二子字符串的结束时间′000:28.340′,将第三子字符串的结束时间确定为′000:28.340′+530=′000:28.870′。
通过上述的步骤就将第一行歌词字符串拆分成了三个子字符串,第一个子字符串的起始时间是第一行歌词的起始时间′000:27.16′,第三个子字符串的结束时间是第一行歌词的结束时间′000:28.870′,可以看出,尽管将一行歌词解析成了三个子字符串,但是在实际播放的时候,“让我怎么说”这整句歌词的起始时间和结束时间并没有改变。通过将第一行歌词字符串拆分成三个子字符串,使得解析后的歌词实现了换行,使得歌词能够以预设字体大小实现正常的显示。
图8-图10分别示出了不同字体大小和不同静态显示区域的宽度时,同一行歌词字符串经过解析后的显示效果图。图8中,预设的静态显示区域11的字体大小为16号(字号和像素之间可以有预设的换算关系),静态显示区域11的宽度Q为480个像素,高度H为90个像素。图9中,预设的静态显示区域11的字体大小为32号,静态显示区域11的宽度Q为480个像素,高度H为90个像素。图10中,预设的静态显示区域11的字体大小为16号,静态显示区域11的宽度为100个像素,高度H为30个像素。需要说明的是,本发明的各个附图中只是示意性地示出静态显示区域、动态显示区域以及字体大小,并不表示实际的尺寸或比例。
根据本发明的一个实施例,解析歌词完毕后,可以通过设置代理的方法返回解析完成后的歌词的实际行数,具体如下:
另外,根据本发明的一个实施例,在某些应用场景中,例如,软件编程人员可以将基于本发明提供的歌词显示方法形成的控件集成到音乐播放软件中,这时歌词显示方法形成的空间可以接收预设属性信息,例如,字体、字体大小、行高、字体颜色、字体的背景色、静态显示区域的尺寸等,具体地,可以提供属性设置窗口,提示软件编程人员输入或选择属性信息,从而接收预设属性信息,根据预设属性信息可以提供个性化的歌词显示。或者也可以允许修改属性信息相关的代码,从而实现属性信息的设置。如下是具体的属性信息的设置方式:
(1)通过如下方式可以创建一个宽度和高度分别为320个像素和400个像素的静态显示区域,加载完自动播放,允许歌词当前行不居中时滚动到居中位置显示。
(2)设置字体为Arial,字体大小为16号,行高为30个像素
[lrcview setFontAndHeight:@”Arial”fontSize:16fontHeight:30];
(3)设置字体的背景色
[lrcview setBackgroundColor:[UIColor clearColor]];
(4)设置播放中字体颜色
[lrcview setSelectedTextColor:[UIColor redColor]];
(5)设置背景字体颜色
[lrcview setNoSelectedFontColor:[UIColor blackColor]];
(6)自动设置静态显示区域的高度
[lrcview setHeightWithRow:YES];
(7)停止歌词
[lrcview Stop];
(8)播放歌词
[lrcview Begin];
(9)强制停止歌词
[lrcview ForceStop];
(10)清除歌词
[lrcview unloadLrc];
(11)设置歌词靠左显示。
lrcview.textAlignment=TextAlignmentLeft;
(12)设置歌词居中显示。
lrcview.textAlignment=TextAlignmentCenter;
(13)设置歌词靠右显示。
lrcview.textAligment=TextAlignmentRight;
(14)设置当前播放行区域为静态显示区域第1行
[lrcview setAutolrcString:lrcStr fullDataCount:0autoBegin:YESautoScroll:YES];
或者,设置当前播放行区域为静态显示区域第3行。
[lrcview setAutolrcString:lrcStr fullDataCount:3autoBegin:YESautoScroll:YES];
具体地,可以向解析后的歌词数据中加入与当前播放行区域在静态显示区域中所属的行数相同的空数据行,空数据行的起始时间、结束时间、歌词内容和歌词内容中每个字符单元的时间值这四部分分别为00:00:00、00:00:00、歌词内容为空、歌词内容中每个字符单元的时间值为空字符。
例如,如果将当前播放行区域设置为静态显示区域第1行,则显示效果可以如图11所示。如果将当前播放行区域设置为静态显示区域第3行,则显示效果可以如图12所示。
通过加入空数据行,可以调整当前播放行区域在静态显示区域的位置,使得歌词显示方式更加灵活。
本发明实施例提供的歌词显示方法,可以封装在一个控件中,形成一个歌词显示控件,该控件可以集成到各种应用软件如音乐播放软件中在歌词显示装置上运行。
本发明前述各实施例提供的歌词显示方法,分别设置了静态显示区域和动态显示区域,在静态显示区域滚动显示一行或多行歌词的同时,分别为每个字符单元设置执行时间与每个字符单元的时间值相匹配的动画,依照每个字符单元的排列顺序,从动态显示区域在静态显示区域中的起始位置开始,在动态显示区域依次显示各个字符单元对应的动画。动态显示区域的显示与静态区域的显示分别独立执行,而且动态显示区域是位于静态显示区域中的当前播放行区域,这样,对于当前播放行,在动态显示区域中会同步显示动画,例如,延长动态显示区域的宽度。由于动态显示区域和静态显示区域的字体颜色不同,当动态显示区域延长时,动态显示区域中的字符单元逐渐显示出来。由于动态显示区域已显示出的字符单元的字体颜色与静态显示区域中没有被动态显示区域覆盖的字符单元的字体颜色不同,而动态显示区域的延长的速度为每个字符单元的宽度除以每个字符单元的时间值,使得动态显示区域的延长速度与字符单元的播放速度相同,动画的执行速度反映了歌词的节奏,便于用户跟唱,实现了准确的歌词逐字显示。
另外,本发明前述各实施例提供的方法中,是通过动态显示区域的延长来达到使得当前播放行逐字显示的效果,而不是通过为静态显示区域的字体添加阴影等方式来实现逐字显示的效果,省去了为字体添加阴影的步骤,数据处理效率高。
图13示例性示出本发明歌词显示装置实施例一的结构示意图,该装置包括:第一确定模块21、第二确定模块22和处理模块23。第一确定模块21用于确定当前播放行;第二确定模块22用于确定动态显示区域在静态显示区域的当前播放行区域中的起始位置,其中,静态显示区域中滚动显示有一行或多行歌词。处理模块23分别与第一确定模块21和第二确定模块22连接,用于依照第一确定模块21确定的当前播放行的字符单元的排列顺序,从第二确定模块22确定的起始位置开始,在动态显示区域依次显示当前播放行的各个字符单元对应的动画。
本发明实施例中的歌词显示装置可以是音乐播放器、智能手机或便携式电脑等。
虽然已参照典型实施例描述了本申请,但应当理解,所用的术语是说明和示例性、而非限制性的术语。由于本申请能够以多种形式具体实施而不脱离发明的精神或实质,所以应当理解,上述实施例不限于任何前述的细节,而应在随附权利要求所限定的精神和范围内广泛地解释,因此落入权利要求或其等效范围内的全部变化和改型都应为随附权利要求所涵盖。
Claims (10)
1.一种歌词显示方法,包括:
确定当前播放行;
确定动态显示区域在静态显示区域的当前播放行区域中的起始位置,其中,所述静态显示区域中滚动显示有一行或多行歌词;
依照当前播放行的字符单元的排列顺序,从所述起始位置开始,在所述动态显示区域依次显示当前播放行的各个字符单元对应的动画。
2.根据权利要求1所述的方法,在动态显示区域依次显示当前播放行的各个字符单元对应的动画之前,还包括:
从预先获取的歌词数据中提取出当前播放行的每个字符单元以及当前播放行中每个字符单元的时间值;
计算每个字符单元的宽度;
所述各个字符单元对应的动画为将所述动态显示区域延长一个宽度等于各个字符单元的宽度从而使得所述动态显示区域中的字符单元逐渐显示出来的动画,各个字符单元对应的动画的执行时间等于各个字符单元的时间值。
3.根据权利要求2所述的方法,其中,所述动态显示区域显示的字符单元的字体颜色与所述静态显示区域显示的字体颜色不同。
4.根据权利要求3所述的方法,其中,所述动态显示区域采用的歌词数据与所述静态显示区域采用的歌词数据相同。
5.根据权利要求2所述的方法,其中,预设的静态显示区域的字体、字体大小以及歌词内容的对齐方式分别与预设的动态显示区域的字体、字体大小以及歌词内容的对齐方式相同,并且所述静态显示区域的背景色与所述动态显示区域的背景色相同。
6.根据权利要求1-5中任一权利要求所述的方法,其中,所述静态显示区域的显示与所述动态显示区域的显示分别独立进行。
7.根据权利要求1-5中任一权利要求所述的方法,其中,所述动态显示区域和静态显示区域分别通过一个用于显示文本视图的控件来实现。
8.根据权利要求1-5中任一权利要求所述的方法,所述确定动态显示区域在静态显示区域的当前播放行区域中的起始位置包括:
根据预设的静态显示区域的歌词内容的对齐方式、当前播放行的歌词内容的宽度、静态显示区域的宽度以及静态显示区域中当前播放行区域的起始位置确定所述动态显示区域在所述静态显示区域的当前播放行区域中的起始位置。
9.根据权利要求1-5中任一权利要求所述的方法,在确定当前播放行之前,还包括:根据预设的静态显示区域和动态显示区域的字体、字体大小以及歌词内容的对齐方式,将初始歌词字符串进行解析,获得歌词数据,使得解析后的歌词数据与所述预设的静态显示区域和动态显示区域的字体、字体大小以及歌词内容的对齐方式相匹配。
10.一种歌词显示装置,包括:
第一确定模块,用于确定当前播放行;
第二确定模块,用于确定动态显示区域在静态显示区域的当前播放行区域中的起始位置,其中,所述静态显示区域中滚动显示有一行或多行歌词;
处理模块,分别与所述第一确定模块和第二确定模块连接,用于依照所述第一确定模块确定的当前播放行的字符单元的排列顺序,从所述第二确定模块确定的起始位置开始,在所述动态显示区域依次显示当前播放行的各个字符单元对应的动画。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110122247 CN102148048A (zh) | 2011-05-12 | 2011-05-12 | 歌词显示方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110122247 CN102148048A (zh) | 2011-05-12 | 2011-05-12 | 歌词显示方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102148048A true CN102148048A (zh) | 2011-08-10 |
Family
ID=44422265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110122247 Pending CN102148048A (zh) | 2011-05-12 | 2011-05-12 | 歌词显示方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102148048A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436838A (zh) * | 2011-08-30 | 2012-05-02 | 北京瑞信在线系统技术有限公司 | 计算机实施的歌词显示方法及装置 |
CN104252309A (zh) * | 2013-06-29 | 2014-12-31 | 北京新媒传信科技有限公司 | 一种实现智能终端中文本编辑的方法和系统 |
CN105279140A (zh) * | 2014-07-22 | 2016-01-27 | 腾讯科技(深圳)有限公司 | 文本显示方法、服务器、终端及系统 |
CN106297459A (zh) * | 2016-09-20 | 2017-01-04 | 广东小天才科技有限公司 | 一种基于教学内容的人机互动方法及装置、用户设备 |
CN106598439A (zh) * | 2016-12-12 | 2017-04-26 | 深圳Tcl数字技术有限公司 | 条目滚动过程中的显示方法及装置 |
CN107220339A (zh) * | 2017-05-26 | 2017-09-29 | 北京酷我科技有限公司 | 一种歌词逐字显示方法 |
CN109788335A (zh) * | 2019-03-06 | 2019-05-21 | 珠海天燕科技有限公司 | 视频字幕生成方法和装置 |
CN110087122A (zh) * | 2019-05-06 | 2019-08-02 | 北京字节跳动网络技术有限公司 | 用于处理信息的系统、方法和装置 |
CN110377208A (zh) * | 2019-07-17 | 2019-10-25 | 广州酷狗计算机科技有限公司 | 音频播放方法、装置、终端和计算机可读存储介质 |
CN112231607A (zh) * | 2020-10-15 | 2021-01-15 | 百度(中国)有限公司 | 文案处理方法、装置、电子设备和存储介质 |
CN113011130A (zh) * | 2021-02-20 | 2021-06-22 | 安徽文香科技有限公司 | 一种字符动画编辑方法、装置、电子设备及存储介质 |
CN113515334A (zh) * | 2021-05-07 | 2021-10-19 | 广州酷狗计算机科技有限公司 | 文本数据显示方法、装置、计算机设备及存储介质 |
WO2022083273A1 (zh) * | 2020-10-23 | 2022-04-28 | 北京字节跳动网络技术有限公司 | 文字显示方法、装置、电子设备以及计算机可读存储介质 |
WO2022247935A1 (zh) * | 2021-05-28 | 2022-12-01 | 维沃移动通信(杭州)有限公司 | 显示方法和显示装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5705762A (en) * | 1994-12-08 | 1998-01-06 | Samsung Electronics Co., Ltd. | Data format and apparatus for song accompaniment which allows a user to select a section of a song for playback |
CN101127210A (zh) * | 2007-09-20 | 2008-02-20 | Ut斯达康通讯有限公司 | 实现歌曲播放过程中歌词同步的方法和装置 |
CN101840727A (zh) * | 2010-04-28 | 2010-09-22 | 深圳市五巨科技有限公司 | 一种同步显示歌词的移动终端音乐播放方法和装置 |
-
2011
- 2011-05-12 CN CN 201110122247 patent/CN102148048A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5705762A (en) * | 1994-12-08 | 1998-01-06 | Samsung Electronics Co., Ltd. | Data format and apparatus for song accompaniment which allows a user to select a section of a song for playback |
CN101127210A (zh) * | 2007-09-20 | 2008-02-20 | Ut斯达康通讯有限公司 | 实现歌曲播放过程中歌词同步的方法和装置 |
CN101840727A (zh) * | 2010-04-28 | 2010-09-22 | 深圳市五巨科技有限公司 | 一种同步显示歌词的移动终端音乐播放方法和装置 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436838A (zh) * | 2011-08-30 | 2012-05-02 | 北京瑞信在线系统技术有限公司 | 计算机实施的歌词显示方法及装置 |
CN104252309A (zh) * | 2013-06-29 | 2014-12-31 | 北京新媒传信科技有限公司 | 一种实现智能终端中文本编辑的方法和系统 |
CN104252309B (zh) * | 2013-06-29 | 2017-08-04 | 北京新媒传信科技有限公司 | 一种实现智能终端中文本编辑的方法和系统 |
CN105279140B (zh) * | 2014-07-22 | 2020-09-04 | 腾讯科技(深圳)有限公司 | 文本显示方法、服务器、终端及系统 |
CN105279140A (zh) * | 2014-07-22 | 2016-01-27 | 腾讯科技(深圳)有限公司 | 文本显示方法、服务器、终端及系统 |
CN106297459A (zh) * | 2016-09-20 | 2017-01-04 | 广东小天才科技有限公司 | 一种基于教学内容的人机互动方法及装置、用户设备 |
CN106598439A (zh) * | 2016-12-12 | 2017-04-26 | 深圳Tcl数字技术有限公司 | 条目滚动过程中的显示方法及装置 |
CN107220339A (zh) * | 2017-05-26 | 2017-09-29 | 北京酷我科技有限公司 | 一种歌词逐字显示方法 |
CN109788335A (zh) * | 2019-03-06 | 2019-05-21 | 珠海天燕科技有限公司 | 视频字幕生成方法和装置 |
CN110087122A (zh) * | 2019-05-06 | 2019-08-02 | 北京字节跳动网络技术有限公司 | 用于处理信息的系统、方法和装置 |
WO2020224294A1 (zh) * | 2019-05-06 | 2020-11-12 | 北京字节跳动网络技术有限公司 | 用于处理信息的系统、方法和装置 |
CN110377208A (zh) * | 2019-07-17 | 2019-10-25 | 广州酷狗计算机科技有限公司 | 音频播放方法、装置、终端和计算机可读存储介质 |
CN110377208B (zh) * | 2019-07-17 | 2023-04-07 | 广州酷狗计算机科技有限公司 | 音频播放方法、装置、终端和计算机可读存储介质 |
CN112231607A (zh) * | 2020-10-15 | 2021-01-15 | 百度(中国)有限公司 | 文案处理方法、装置、电子设备和存储介质 |
CN112231607B (zh) * | 2020-10-15 | 2023-11-21 | 百度(中国)有限公司 | 文案处理方法、装置、电子设备和存储介质 |
WO2022083273A1 (zh) * | 2020-10-23 | 2022-04-28 | 北京字节跳动网络技术有限公司 | 文字显示方法、装置、电子设备以及计算机可读存储介质 |
CN113011130A (zh) * | 2021-02-20 | 2021-06-22 | 安徽文香科技有限公司 | 一种字符动画编辑方法、装置、电子设备及存储介质 |
CN113515334A (zh) * | 2021-05-07 | 2021-10-19 | 广州酷狗计算机科技有限公司 | 文本数据显示方法、装置、计算机设备及存储介质 |
WO2022247935A1 (zh) * | 2021-05-28 | 2022-12-01 | 维沃移动通信(杭州)有限公司 | 显示方法和显示装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102148048A (zh) | 歌词显示方法及装置 | |
US20130205202A1 (en) | Transformation of a Document into Interactive Media Content | |
CN100498927C (zh) | 二维图形引擎中的点阵字符的缩进方法与中文处理方法 | |
CN103123648A (zh) | 在划定区域中呈现丰富的搜索结果 | |
CN102959496A (zh) | 系统级文本查看器 | |
CN102436838A (zh) | 计算机实施的歌词显示方法及装置 | |
CN103714724A (zh) | 一种信息处理方法及电子设备 | |
CN105975264A (zh) | 一种文字控件的实现方法及其装置 | |
CA2912324C (en) | System to generate a mixed media experience | |
CN106648367A (zh) | 一种点读方法和点读装置 | |
CN111831912A (zh) | 在启动应用程序时提供推荐信息的方法 | |
EP2954438B1 (en) | Interactive method and apparatus for mixed media narrative consumption | |
CN104216635A (zh) | 上屏信息的获取方法及装置 | |
Salim et al. | Comparative study of low-cost tools to create effective educational infographics content | |
US9619915B2 (en) | Method and apparatus for converting an animated sequence of images into a document page | |
KR20120105772A (ko) | 컴퓨터그래픽 스크립트로 구현한 효율적인 인터랙티브 스토리텔링 학습기법 | |
CN101923421A (zh) | 候选汉字显示方法和系统以及汉字输入方法和系统 | |
CN103106079B (zh) | 数字内容阅读器及其显示方法 | |
CN106648135A (zh) | 在触摸屏设备上利用拼音输入法输入文字的方法和装置 | |
KR200349277Y1 (ko) | 휴대용 전자 문자 학습기 | |
Georgiev et al. | Module for investigation of the user's text reading speed on mobile devices | |
CN102043797A (zh) | 列表切换方法 | |
KR20150062072A (ko) | 전자문서 상에서의 텍스트정보 검색기능 제공 방법 및 장치 | |
CN101916517A (zh) | 在电子阅读终端上显示文本信息的方法和装置 | |
KR20200069115A (ko) | 학습장치 및 학습 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110810 |