音乐播放器中实现歌曲播放时歌词同步的方法

文档序号:6755489阅读:309来源:国知局
专利名称:音乐播放器中实现歌曲播放时歌词同步的方法
音乐播放器中实现歌曲播放时歌词同步的方法
技术领域
本发明涉及数字终端数字音视频文件的播放技术,具体是指一种在数字 终端上音乐播放器中进行歌曲播放时的歌词同步的方法。背景技术
目前,在嵌入式产品中的音乐播放器中实现歌词同步,成为产品的一大 吸引点。在现有技术中,数字终端上的歌词同步播放, 一般都是通过具有同 步歌词文件的解析与显示能力的解码芯片来完成。采用硬件实现对数字终端 成本的要求较高,而且一些低端的数字终端产品一般不会使用功能比较强大 的芯片。
中国发明专利第200710153772.9号公开了 一种实现歌曲播放时歌词同步 的方法。该方法是采用链表方式来完成的。考虑歌词显示时查询操作比较多, 而没有删除和插入操作。用链表方式实现,优点在于不会浪费内存空间和溢 出,但是它不支持随机访问,查找时必须从链表的头指针开始遍历,即按照 链表的顺序, 一个节点一个节点的依次比较,直到找到正确的节点或者链表 结束,降低了查询效率。
发明内容
本发明所要解决的技术问题在于提供一种音乐播放器中实现歌曲播放时 歌词同步的方法,支持随机访问,查找速度快。 本发明采用以下技术方案解决上述技术问题
一种音乐播放器中实现歌曲播放时歌词同步的方法,包括如下步骤 步骤100:解析歌词文件将歌词文件解析好,存放在顺序表,为查找 歌词提供数据;
步骤200:查找歌词获取当前播放时间,去获取对应的歌词文本,供 显示歌词模块使用;步骤300:显示歌词将获取到的歌词文本显示到正确的位置,将新获 取的歌词显示在刚唱完的那句歌词区域。 本发明进一步具体为 所述步骤100包含以下步骤 步骤101:将整个歌词文件读入内存; 步骤102:逐句分析歌词文件;
步骤103:判断是否是标签?是,转入步骤104,否则转入步骤107; 步骤104:判断是否是时间标签?是,转入步骤105,否则转入步骤106; 步骤105:转化时间格式后,填写时间信息数组的第一个空闲节点; 步骤106:获取标签类型;
步骤107:是歌词文本,填写歌词信息数组中第一个空闲节点;
步骤108:判断是否文件结束?是,转入步骤109,否则转入步骤102;
步骤109:退出。
所述步骤200包含以下步骤
步骤201:获取播放时间,转换时间格式;
步骤202:利用当前时间,从时间信息数组获取当前时间对应的元素数 纟且下标为x;
步骤203:从时间信息数组中的下标为x+l的元素中获取对应的歌词是 第n句;
步骤204:从歌词文本信息数组中的下标为n的元素中读取用于显示的歌 词文本信息;
步骤205:调用显示歌词接口显示;
步骤206:判断是否播放结束?是,转入步骤207,否则转入步骤201;
步骤207:退出。
所述步骤300包含以下步骤
步骤301:获取要显示的歌词文本信息;
步骤302:确定正确显示的区域有两个显示区域,选择当前歌词显示 的区域;步骤303:判断歌词长度是否超过了显示区域范围;是,则转入步骤304, 否则转入步骤305;
步骤304:对歌词文本做截断处理; 步骤305:调用显示文字接口,显示歌词。
本发明实现歌曲播放时歌词同步的方法的优点在于利用顺序表可以根 据元素序号进行随机访问的特点,来提高查询效率,设计了用顺序表来实现 歌词同步。而且借鉴酷乐播放器的同时显示两句歌词的风格,本发明也利用 顺序表很好的实现了上下两句歌词同时显示,更人性化。

下面参照附图结合实施例对本发明作进一步的描述。 图l是本发明整体模块图。 图2是本发明中解析歌词文件模块流程图。 图3是本发明中查找歌词模块流程图。 图4是本发明中显示歌词模块流程图。
具体实施方式
首先要引入本实施例中关键的两个数据结构,即两个结构体数组 一个 是歌词信息数组,还有一个是歌词句时间数组。数组就是顺序表。歌词信息 包括存放歌词文本的数组和歌词文本长度;歌词句时间包括当前时间值和当 期时间所对应个歌词是第几句。
歌词文件有的是支持句同步,这类文件中的时间就是每一句歌词开始的 时间;而有的歌词文件是支持字同步,这类文件中的时间包括每一句开始的 时间和每个字开始的时间。在本实例中,是针对歌词句同步的歌词文件。
歌词同步显示分三个模块解析歌词文件模块,查找歌词模块,显示歌 词模块。如图1所示,解析歌词文件模块是把歌词文件解析好,存放在顺序 表,为查找歌词模块提供数据;查找歌词模块是获取当前时间,去获取对应 的歌词文本,供显示歌词模块使用;最后显示歌词模块要把找到的歌词显示 到正确的位置,把新获取的歌词显示在刚唱完的那句歌词区域。
具体操作步骤如下,请同时参阅图2、图3、图4。
6图2是本发明中解析歌词文件模块流程图。 步骤101:将整个歌词文件读入内存; 步骤102:逐句分析歌词文件;
步骤103:判断是否是标签?是,转入步骤104,否则转入步骤107; 步骤104:判断是否是时间标签?是,转入步骤105,否则转入步骤106; 步骤105:转化时间格式后,填写时间信息数组的第一个空闲节点; 步骤106:获取标签类型;
步骤107:是歌词文本,填写歌词信息数组中第一个空闲节点; 步骤108:判断是否文件结束?是,转入步骤109,否则转入步骤102; 步骤109:退出。
图3是本发明中查找歌词模块流程图。 步骤201:获取播放时间,转换时间格式;
步骤202:利用当前时间,从时间信息数组获取当前时间对应的元素数 组下标为x;
步骤203:从时间信息数组中的下标为x+l的元素中获取对应的歌词是 第n句;
步骤204:从歌词文本信息数组中的下标为n的元素中读取用于显示的歌 词文本信息;
步骤205:调用显示歌词接口显示;
步骤206:判断是否播放结束?是,转入步骤207,否则转入步骤201; 步骤207:退出。
获取与当前播放时间对应的时间信息数组下标为x,而在本实例要实现 两句歌词同时显示,要刷新的是下一句歌词信息,而不是当前播放时间要唱 的那句歌词,所以要获取下标为x+l元素的信息,得到下一句要刷新的歌词 是第n句。从歌词信息数组下标为n的元素中读取歌词文本信息。本发明很 好的体现了顺序表的优势,可以直接对下标值加减,可以根据下标值随机访 问。
图4是本发明中显示歌词模块流程图。步骤301:获取要显示的歌词文本信息;
步骤302:确定正确显示的区域有两个显示区域,选择当前歌词显示 的区域;
步骤303:判断歌词长度是否超过了显示区域范围;是,则转入步骤304, 否则转入步骤305;
步骤304:对歌词文本做截断处理; 步骤305:调用显示文字接口,显示歌词。
歌词查找和歌词显示是同步的,歌词查找时已经判断了是否播放结束, 所以在歌词显示中就不需要再判断了,歌词查找结束了,也没有歌词需要显 示了。
具体操作时,首先保证歌词文件与其对应音频文件同名。然后把歌词文 件与其同名的音频文件放在同一个目录下。这样就可以播放音乐时,有同步 歌词了 。
结果显示如下
比如歌曲《爱情里并没有谁错谁对》,当前显示
"虽然偶尔也痛彻心扉
缘尽了,你走了,无法回头" 等唱完了 "虽然偶尔也痛彻心扉",歌词显示就变成了 "缘尽了,你走了,无法回头
我要努力学会无所谓" 等唱完了 "缘尽了,你走了,无法回头",歌词显示就变成了 "我要努力学会无所谓
就这样,就这样,忍住伤悲" 本发明针对歌词显示主要是查询操作的需求,考虑用顺序表实现。各种 高级语言都是支持数组,具有根据元素序号可以随机访问的特点,查找速度
8
权利要求
1、一种音乐播放器中实现歌曲播放时歌词同步的方法,其特征在于包括如下步骤步骤100解析歌词文件将歌词文件解析好,存放在顺序表,为查找歌词提供数据;步骤200查找歌词获取当前播放时间,去获取对应的歌词文本,供显示歌词模块使用;步骤300显示歌词将获取到的歌词文本显示到正确的位置,将新获取的歌词显示在刚唱完的那句歌词区域。
2、 如权利要求1所述的音乐播放器中实现歌曲播放时歌词同步的方法, 其特征在于所述步骤100包含以下步骤步骤101:将整个歌词文件读入内存; 步骤102:逐句分析歌词文件;步骤103:判断是否是标签?是,转入步骤104,否则转入步骤107; 步骤104:判断是否是时间标签?是,转入步骤105,否则转入步骤106; 步骤105:转化时间格式后,填写时间信息数组的第一个空闲节点; 步骤106:获取标签类型;步骤107:是歌词文本,填写歌词信息数组中第一个空闲节点; 步骤108:判断是否文件结束?是,转入步骤109,否则转入步骤102; 步骤109:退出。
3、 如权利要求l所述的音乐播放器中实现歌曲播放时歌词同步的方法, 其特征在于所述步骤200包含以下步骤步骤201:获取播放时间,转换时间格式;步骤202:利用当前时间,从时间信息数组获取当前时间对应的元素数 组下标为x;步骤203:从时间信息数组中的下标为x+l的元素中获取对应的歌词是 第n句;步骤204:从歌词文本信息数组中的下标为n的元素中读取用于显示的 歌词文本信息;步骤205:调用显示歌词接口显示;步骤206:判断是否播放结束?是,转入步骤207,否则转入步骤201; 步骤207:退出。
4、如权利要求l所述的音乐播放器中实现歌曲播放时歌词同步的方法, 其特征在于所述步骤300包含以下步骤 步骤301:获取要显示的歌词文本信息;步骤302:确定正确显示的区域有两个显示区域,选择当前歌词显示 的区域;步骤303:判断歌词长度是否超过了显示区域范围;是,则转入步骤304, 否则转入步骤305;步骤304:对歌词文本做截断处理; 步骤305:调用显示文字接口,显示歌词。
全文摘要
一种音乐播放器中实现歌曲播放时歌词同步的方法,包括如下步骤解析歌词文件将歌词文件解析好,存放在顺序表,为查找歌词提供数据;查找歌词获取当前播放时间,去获取对应的歌词文本,供显示歌词模块使用;显示歌词将获取到的歌词文本显示到正确的位置,将新获取的歌词显示在刚唱完的那句歌词区域。本发明的优点在于利用顺序表可以根据元素序号进行随机访问的特点,来提高查询效率,设计了用顺序表来实现歌词同步。而且借鉴酷乐播放器的同时显示两句歌词的风格,本发明也利用顺序表很好的实现了上下两句歌词同时显示,更人性化。
文档编号G11B27/10GK101562035SQ20091011184
公开日2009年10月21日 申请日期2009年5月25日 优先权日2009年5月25日
发明者剑 乐 申请人:福州星网视易信息系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1