一种歌词逐字显示方法与流程

文档序号:11199312阅读:3079来源:国知局
本发明涉及ios系统中歌曲字幕显示
技术领域
:,具体说是一种歌词逐字显示方法。
背景技术
::现有的ios歌词解析,大都是用tableview来显示歌词的,这样的好处是:歌词能滚动,被选中的歌词能高亮,参见图4,其中高亮的歌词为“我总是在这里盼望你”,本示例中仅示出了滚动显示中的三行歌词。通常,歌词被记录于lrc文件中。将歌词显示到屏幕上需要至少如下步骤:1.歌词解析:这一步要把歌词解析出来,放到一个字典当中。另外,通常还有两个要注意的问题:一是要把时间转换为秒,二是要给解析出来的歌词按照时间排序。2.动态显示:解析歌词的部分完成后,剩下的任务就是动态显示了,怎么能够让歌词动态显示呢,主要用到下面两个方法:1)nstimer类(用于实现计时器功能的类)2)被选中的行移动到中间。lrc文件格式通常有三种,参见图1、2、3。需要说明的是:其实lrc文件还有一种格式,是像ktv一样的效果,每个字对应一个时间点,但不是很常用。现有歌词显示方式存在以下缺点:1、需要占用较大显示空间,而便携手持设备本身屏幕就不大,因此此种显示方式影响gui的设计,且影响使用体验感受。2、整行歌词显示导致缺乏关注度,容易导致看错行,容易导致找不到当前所唱歌词是哪个字。3、显示方式单一,缺乏变化,容易引起视觉审美疲劳,缺乏个性化选择。技术实现要素:针对现有技术中存在的缺陷,本发明的目的在于提供一种歌词逐字显示方法,逐字显示歌词并形成动画效果,仅需占用很少的显示空间,歌词关注度高,容易辨识,不会看错行或找不到当前所唱歌词是哪个字,具备纠错容错能力,歌词显示准确度高,丰富了用户的歌词显示选择,满足不同用户的个性化需求。为达到以上目的,本发明采取的技术方案是:一种歌词逐字显示方法,其特征在于,包括如下步骤:步骤1,判断用户是否开启动画逐字显示歌词的方式;未开启,则采用常规歌词显示方式:整行显示歌词;已开启,转步骤2进行动画逐字显示歌词;步骤2,获取待显示歌词原文;步骤3,获取歌词显示开始时间;步骤4,计算前奏空白时间,得到第一个字的显示开始时间;步骤5,从第一个字的显示开始时间,逐字计算字时间占比;字时间占比=(字结束时间-字开始时间)/行总时间;步骤6,逐字增加该字的显示开始时间,形成动画逐字显示歌词记录文件;步骤7,判断用户选择何种动画效果显示;步骤8,根据步骤7的判断结果调用动画函数及相应动画图片,按“该字显示的显示开始时间”准时显示“该字本身”。在上述技术方案的基础上,步骤6中,动画逐字显示歌词记录文件中至少包括以下内容:该字显示的显示开始时间,该字本身,用于分割“该字显示的显示开始时间”和“该字本身”的分隔符,至少一个该字属于第几行整行歌词的标识。在上述技术方案的基础上,在步骤6中,遇到非中文字符或非中文字符串时,在该非中文字符或非中文字符串之后增加空格。在上述技术方案的基础上,当用户关闭自动增加空格功能时,则:遇到非中文字符或非中文字符串时,如果其后没有空格,则增加0.01秒的空格显示时间。在上述技术方案的基础上,在步骤6中,遇到非中文字符或非中文字符串时,尝试进行乱码检测,确定非中文字符或非中文字符串是否需要转换为中文。在上述技术方案的基础上,在步骤6中,相邻两个字如果开始时间相同,则在后的字延后0.1秒显示。在上述技术方案的基础上,在步骤7和步骤8之间,还进行以下处理步骤:获取显示歌词区域的大小;获取当前待显示整行歌词的长度;判断当前待显示整行歌词的长度是否超过显示歌词区域的大小:未超过,执行步骤8;有超过,将当前待显示整行歌词拆分为两行,分别进行逐字显示。本发明所述的歌词逐字显示方法,逐字显示歌词并形成动画效果,仅需占用很少的显示空间,歌词关注度高,容易辨识,不会看错行或找不到当前所唱歌词是哪个字,具备纠错容错能力,歌词显示准确度高,丰富了用户的歌词显示选择,满足不同用户的个性化需求。附图说明本发明有如下附图:图1lrc文件格式示例1。图2lrc文件格式示例2。图3lrc文件格式示例3。图4现有歌词显示效果示例。图5本发明歌词显示效果示例。具体实施方式以下结合附图对本发明作进一步详细说明。如图5所示,本发明所述的歌词逐字显示方法,包括如下步骤:步骤1,判断用户是否开启动画逐字显示歌词的方式;未开启,则采用常规歌词显示方式:整行显示歌词;已开启,转步骤2进行动画逐字显示歌词;步骤2,获取待显示歌词原文;步骤3,获取歌词显示开始时间;步骤4,计算前奏空白时间,得到第一个字的显示开始时间;步骤5,从第一个字的显示开始时间,逐字计算字时间占比;字时间占比=(字结束时间-字开始时间)/行总时间;步骤6,逐字增加该字的显示开始时间,形成动画逐字显示歌词记录文件;即:对歌词中的每一个字,逐一计算得到该字的显示开始时间,汇总形成动画逐字显示歌词记录文件;动画逐字显示歌词记录文件中至少包括以下内容:该字显示的显示开始时间,该字本身,用于分割“该字显示的显示开始时间”和“该字本身”的分隔符,至少一个该字属于第几行整行歌词的标识;步骤7,判断用户选择何种动画效果显示;步骤8,根据步骤7的判断结果调用动画函数及相应动画图片,按“该字显示的显示开始时间”准时显示“该字本身”。在上述技术方案的基础上,在步骤6中,遇到非中文字符或非中文字符串时,在该非中文字符或非中文字符串之后增加空格。例如:英文词后增加空格。在上述技术方案的基础上,当用户关闭自动增加空格功能时,则:遇到非中文字符或非中文字符串时,如果其后没有空格,则增加0.01秒的空格显示时间。在上述技术方案的基础上,在步骤6中,遇到非中文字符或非中文字符串时,尝试进行乱码检测,确定非中文字符或非中文字符串是否需要转换为中文。在上述技术方案的基础上,在步骤6中,相邻两个字如果开始时间相同,则在后的字延后0.1秒显示。在上述技术方案的基础上,在步骤7和步骤8之间,还进行以下处理步骤:获取显示歌词区域的大小;获取当前待显示整行歌词的长度;判断当前待显示整行歌词的长度是否超过显示歌词区域的大小:未超过,执行步骤8;有超过,将当前待显示整行歌词拆分为两行,分别进行逐字显示。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1