安卓开发,如何像android酷狗音乐播放器那样使歌词逐字匹配音乐

发布网友 发布时间:2022-04-23 16:32

我来回答

4个回答

热心网友 时间:2023-10-09 11:40

这都是用自定义控件做的。
重写View,
在onDraw方法里面写。
http://download.csdn.net/detail/huer666/1610204#comment
这里有一个demo
其实逐字显示歌词的LRC文件都是不一样的。不过大同小异。
具体实现思路是如下:
【03:10】我【1234】你【333】他【3212】
这样就表示在3分10秒的时候显示“我你他”这三个字
每个字逐字显示时间长短分别为1234毫秒 333毫秒 3212毫秒追问嗯,我知道原理差不多,但是个人基础差了,脑子也不好使,想问题比较容易陷入死结,看看demo先

热心网友 时间:2023-10-09 11:40

这个逐字匹配的话估计得把程序员累死。
这个应该是根据歌曲的每一句话来确定的 因为歌虽然节奏不同但是一句话里的每个字的节奏速度差不多。
然后向最后那种长音你可以加...来占位置,然后显示出来不就解决了吗。
如果真的精确到字也不是不可能,但是人家是大公司可能有算法辅助,或者有专门的人来干这个。自己做的话真的很难的。
重在你对IRC的 切句 与 加长 尽量去模拟。追问我想的是根据每个字的时间来匹配,每个字每个字的来解决确实很累啊,想用算法搞定,可惜完全找不到思路,哎,这个问题还真难解决

热心网友 时间:2023-10-09 11:40

酷狗的歌词逐字匹配 是因为酷狗歌词的制作过程 你用酷狗制作过歌词吗? 如果你想做成一样的 我建议你去制作一份歌词才能明白。。。只用LRC写 即使加点或者空格什么的 也一定会影响美观 如果你根据酷狗的歌词制作步骤能写出相关算法 那程序里的算法就好写了。。。

追问好吧,这个算法,以我目前的能力很难搞定,想了蛮久都不知道怎么开头,歌词,我学着制作了,但是算法么,写不出来

追答

我可以给你一些思路 但只是我的理解。。。没学过JAVA。。可能有些不靠谱 仅供参考 如下所示

接收输入歌词存在相应地址

接收歌曲总时间

有光标指针 指向第一句歌词句首

方向键基础功能条件语句 里面肯定要有 上方向键 光标指向上一行句首 下方向键时间计算停止 右方向键如果之前按过下方向键 应该开始计算时间 如果没有应该指向下一字(此处应该有条件语句) 左方向键指向上一字

主程序的时间算法里应该要有光标位置判定语句 如果是句首 停留时间不应该计算 如果是句中 那要有时间算法来判定单字所用时间 如果是句尾 自动转向下一行 并记录这些时间对应于整首歌曲的的开始时间与结束时间两个时间于相应地址

设定一个算法 根据歌曲时间和第五步的时间 来制作歌词的界面显示。。。

热心网友 时间:2023-10-09 11:41

android的话,试一下这个项目吧,开源的,支持酷狗的歌词、音译和翻译歌词。
https://github.com/zhangliangming/HappyPlayer5.git

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com