zhangliangming / HPLyrics

Android仿酷狗动感歌词(支持翻译和音译歌词)显示效果,支持lrc歌词、ksc歌词、krc歌词、trc歌词、网易云API歌词和hrc歌词等歌词格式的显示,支持动感歌词制作。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

大佬请问网易云的歌词怎么使用

opened this issue · comments

http://music.163.com/api/song/lyric?os=pc&id=461347998&lv=-1&kv=-1&tv=-1 这种带有翻译的歌词,此控件该怎么使用

@Anzhi-Meiying 你这个要自己拓展才行。
1.LyricsReader:要修改

  public void setLyricsInfo(LyricsInfo lyricsInfo) {
        /**
         * 重新解析歌词
         */
        parser(lyricsInfo);
    }

2.LyricsInfo :自己根据网易的接口,构造一个lrc歌词实体(包括lrc歌词、动感歌词、翻译歌词)

  1. LyricsReader lyricsReader = new LyricsReader();
    lyricsReader.setLyricsInfo();

4.ManyLyricsView.setLyricsReader(lyricsReader);

最后:关于网易歌词拓展,我将它划入下一个更新版本内容里面。需要时间开发。又或者你开发好了,可分享出来

@zhangliangming 噢我不会,还是等大佬更新吧,谢谢啦

@Anzhi-Meiying 最新版本已经支持网易api的歌词,该歌词只适用于通过api获取歌词,文件保存格式为:lrcwy。其中动感歌词和lrc歌词只能选其中一种;支持翻译歌词。
调用api接口

还有就是您为什么不将demo放到到github呢,百度云的链接失效了

@Anzhi-Meiying demo地址,已经更新。
链接: https://pan.baidu.com/s/1j-4wbtiNIfRhypb4uEnX6g 提取码: t8dj

你看一下,上面和你说的第3和第4步,
LyricsReader lyricsReader = new LyricsReader();
lyricsReader.setLyricsInfo();
4.ManyLyricsView.setLyricsReader(lyricsReader);

你先这样弄先

@zhangliangming 谢谢大佬,还有问题就是可以让额外歌词也进行高亮吗,然后滑动的时候时间线的当前位置的歌词可不可以也高亮,像网易云音乐那样子,这样突出当前选择行数可能会更友好一些,视觉效果也比较好
image

@zhangliangming 另外反馈一个bug

当 setExtraLrcStatus(EXTRALRCSTATUS_SHOWTRANSLATELRC) 时

所有歌词都会出现一个问题:当歌词播放到某一行时,这一行上面的所有歌词都会看不见

这是setExtraLrcStatus后显示的 (BUG)
image

这是没有开启额外歌词显示的(正常)
image

java.lang.IndexOutOfBoundsException: Index: 39, Size: 39
at java.util.ArrayList.get(ArrayList.java:437)
at com.zlm.hp.lyrics.utils.LyricsUtils.getTranslateLrc(LyricsUtils.java:306)
at com.zlm.hp.lyrics.LyricsReader.parser(LyricsReader.java:128)
at com.zlm.hp.lyrics.LyricsReader.setLyricsInfo(LyricsReader.java:203)
at com.meiying.luxury.fragment.MusicFragment.loadLrc(MusicFragment.java:549)
at com.meiying.luxury.fragment.MusicFragment.lambda$searchLyric$14(MusicFragment.java:519)
at com.meiying.luxury.fragment.-$$Lambda$MusicFragment$vx0bQXy8Uq8iR3ewyOJ4t6cRFhY.accept(Unknown Source:6)
at io.reactivex.internal.observers.LambdaObserver.onNext(LambdaObserver.java:63)
at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:201)
at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:255)
at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:119)
at android.os.Handler.handleCallback(Handler.java:794)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:173)
at android.app.ActivityThread.main(ActivityThread.java:6653)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:821)

好几首歌无法加载歌词,报错
https://music.163.com/api/song/lyric?os=pc&id=1331322046&lv=-1&kv=-1&tv=-1
https://music.163.com/api/song/lyric?os=pc&id=469314032&lv=-1&kv=-1&tv=-1

@Anzhi-Meiying
1.关于网易歌词,之前忘记对歌词进行检测了,现在最新版本已经修复了
2.关于有时不绘画歌词问题,隐藏的比较深。最新版本应该是没有问题的了。
3.关于翻译歌词高亮的问题,最新版本已经是默认高亮显示了。
4.关于滑动歌词时,当前行变颜色,因为我都是参考酷狗来弄的,所以这个就没有弄,

@zhangliangming 感谢大佬的详细解答,非常棒的库

@Anzhi-Meiying 其中动感歌词和lrc歌词只能选其中一种;支持翻译歌词。你测试一下,还有没有问题

@zhangliangming 好的我测试看看

@Anzhi-Meiying
1.关于网易歌词,之前忘记对歌词进行检测了,现在最新版本已经修复了
2.关于有时不绘画歌词问题,隐藏的比较深。最新版本应该是没有问题的了。
3.关于翻译歌词高亮的问题,最新版本已经是默认高亮显示了。
4.关于滑动歌词时,当前行变颜色,因为我都是参考酷狗来弄的,所以这个就没有弄,

新版本没有更新github吗,只更新了百度盘吗

@Anzhi-Meiying 提交 了多次,所以提交内容改了好多。最新的代码,是有提交到github上面的了。

@zhangliangming 哦哦是这样,因为我看到最近提交好像只提交了readme,我去试试看

@Anzhi-Meiying 真的是没有提交到,可能是我本地出问题了,提交文字放上去了,不过文件没更新。等等

@Anzhi-Meiying 可以了,提交上去了。你更新试试

@zhangliangming 好的,感谢,我明天试试,大佬那个滑动显示高亮以后会加入吗,现在的自定义api感觉限制有点多,比如按钮图标也不能换

@Anzhi-Meiying 你更新一下最新的代码
1.关于那个按钮或者指示器,你可以调用setIsDrawIndicator和setOnIndicatorListener。来将指示器隐藏,然后通过setOnIndicatorListener回调,在ManyLyricsView的上层自己在布局添加多一个view来自己实现指示器。
2.关于那个滑动显示高亮的问题,最近都是在弄“制作歌词”方面的优化,后面可能会加入

@zhangliangming 好的,感谢大佬解答