引言
之前PC版本已经实现了动感歌词、翻译歌词和音译歌词的制作,便想着找个时间,把PC版本的功能移植到Android手机平台上面。经过一周的努力,终于实现了,界面虽然简陋,但是大部分的功能已经实现。为了开发方便,就将该动感歌词制作器嵌套到播放器里面了,其项目地址如下:乐乐音乐播放器。
实现功能
入口
![](https://i-blog.csdnimg.cn/blog_migrate/b83bb6845a3cee530ea8417d3bf8b4d3.webp?x-image-process=image/format,png)
image
![](https://i-blog.csdnimg.cn/blog_migrate/1a9f7ccc42f2f0ba2365fb404cdd30c1.webp?x-image-process=image/format,png)
image
主界面
![](https://i-blog.csdnimg.cn/blog_migrate/18119123e4a68fce4078794c3af71845.webp?x-image-process=image/format,png)
image
操作界面
![](https://i-blog.csdnimg.cn/blog_migrate/355f2eb7f4aa7071b754a754cb69699f.webp?x-image-process=image/format,png)
image
动感歌词制作
![](https://i-blog.csdnimg.cn/blog_migrate/9f4ec70b58694bc39efca27743683d00.webp?x-image-process=image/format,png)
image
![](https://i-blog.csdnimg.cn/blog_migrate/95e23dd9350fede2b8d6b979da78c50f.webp?x-image-process=image/format,png)
image
![](https://i-blog.csdnimg.cn/blog_migrate/202d15da1707529ae27dade2e60bb557.webp?x-image-process=image/format,png)
image
注:制作动感歌词时,需要先播放歌曲,并且选中(RadioButton被选中,并且歌词出现红边框)要敲打的行歌词,然后便可以敲打。歌曲读到【字】,对应要敲打到该字,这样才可以保证歌曲与歌词几步,完成后,边框会变成蓝色,全部完成后,才可以进入预览视图。
翻译歌词制作
![](https://i-blog.csdnimg.cn/blog_migrate/53620306ec3ce0de6b70908bb15a5339.webp?x-image-process=image/format,png)
image
![](https://i-blog.csdnimg.cn/blog_migrate/11dbf1fcad740ab1cbf89fea2cf5862b.webp?x-image-process=image/format,png)
image
注:制作翻译歌词时,点击item列表,便会弹出输入翻译编辑框,只需要在输入框输入内容,便完成该行对应的翻译歌词,可不填写。
音译歌词制作
![](https://i-blog.csdnimg.cn/blog_migrate/59b89906a98e859566483e06f6288261.webp?x-image-process=image/format,png)
image
![](https://i-blog.csdnimg.cn/blog_migrate/44d7e32bbf71f34f080efa2357c92e72.webp?x-image-process=image/format,png)
image
注:制作音译歌词时,点击item列表,便会弹出输入音译编辑框,输入音译歌词时,输入框下有01/04的进度提示,并且输入对应的【字】后,已经完成的【字】会变成蓝色,然后点击空格,进行分隔,不过这里为了兼容krc歌词格式(经常出现一个字包含多个歌词文字的情况),这里使用“∮”符号来替代空格。
思路分析
- 制作动感歌词:当读到【A字】时,点击【敲打】按钮,记录当前的播放进度P1,当播放到下一个【B字】时,记录读到【B字】的播放进度P2,[P2-P1]的时间便是【A字】的时间间隔。
- 制作翻译歌词:相对简单,直接在对应行输入翻译内容即可。
- 制作音译歌词:对应歌词的每个【字】,输入音标即可。
源码
具体的代码和调用Demo,可到源码地址处查看:
乐乐音乐播放器
传送门
最后
如果有问题,可到github上面留言。