大家好,我们是爱学啊,继上一篇讲解了【LRC歌词原理和实现高仿Android网易云音乐】,今天给大家带来一篇关于卡拉OK歌词原理和在Android上如何实现歌词逐字滚动的效果,本文来自【Android开发项目实战我的云音乐】课程。
效果图
相信大家都懂一张图胜过千言万语。
效果和现在市面上大部分播放器差不多,当然如果要运用到商业项目中,肯定还需要进行一些优化,例如:滚动效果有弹性,字体大小,字体颜色等。
什么是卡拉OK歌词
要明白什么是卡拉OK歌词,就先要搞明白什么是卡拉OK,简单来讲就是卡拉OK是一种伴奏系统,演唱者可以在预先录制的音乐伴奏下参与唱歌,现多叫KTV(Karaoke);卡拉OK歌词默认格式为ksc,当然现在市面上的一些软件在他的基础上做了定制,具体的在我们的课程中讲解了;我们这里就讲解ksc,因为卡拉OK歌词的核心就是精确到每一个字,所以搞明白他的原理,我们也就可以在他的基础上定制了。
LRC歌词格式
在实现歌词功能前,肯定需要搞明白ksc歌词格式,例如:我们找了一段LRC歌词:
karaoke := CreateKaraokeObject;
karaoke.rows := 2;
karaoke.TimeAfterAnimate := 2000;
karaoke.TimeBeforeAnimate := 4000;
karaoke.clear;
karaoke.add('00:20.699', '00:27.055', '[●●●●●●]', '7356',RGB(255,0,0));
karaoke.add('00:27.487', '00:32.068', '一时失志不免怨叹', '347,373,1077,320,344,386,638,1096');
karaoke.add('00:33.221', '00:38.068', '一时落魄不免胆寒', '282,362,1118,296,317,395,718,1359');
karaoke.add('00:38.914', '00:42.164', '那通失去希望', '290,373,348,403,689,1147');
karaoke.add('00:42.485', '00:44.530', '每日醉茫茫', '298,346,366,352,683');
karaoke.add('00:45.273', '00:49.029', '无魂有体亲像稻草人', '317,364,380,351,326,351,356,389,922');
karaoke.add('00:50.281', '00:55.585', '人生可比是海上的波浪', '628,1081,376,326,406,371,375,1045,378,318');
karaoke.add('00:56.007', '01:00.934', '有时起有时落', '303,362,1416,658,750,1438');
karaoke.add('01:02.020', '01:04.581', '好运歹运', '360,1081,360,760');
karaoke.add('01:05.283', '01:09.453', '总嘛要照起来行