我是 wangchenyan
主页 | 掘金 | 简书 | 微博 |
---|---|---|---|
点我 | 点我 | 点我 | 点我 |
- 🙋🏻 Android 程序员,奶爸
- 📫 [email protected]
Android beautiful draggable lyric view library
Home Page: https://juejin.im/post/6844903759420588046
能不和mediaplayer 绑定在一起吗,我只是想要个每隔三秒自动滚动的效果,滚动完了会继续循环滚动的就好了,最好还是能拖动的
QQ歌词解析不正常,同一句会重复显示,比如【有何不可】这首歌
我使用的是最新的2.2版本,我发现无论是setOnTapListener或setOnClickListener都无法监听到view的点击事件
我看源码里用的HttpUrlConnection加载有时候时间会特别长,导致加载不出来。是不是HttpUrlConnection的问题
你好,请问调用loadLRc方法后歌词不展示是什么原因?能把用法步骤写再详细一些吗?谢谢
在节电助手开启时动画效果无法正常显示(节电助手限制部分动画效果的使用)。
测试机型部分信息:
Android 版本: 6.0 (MRA58K)
OS: AOSP (MediaTek)
Hi ChanWong21
Thank you for your best library
i have a issue for lyric view your library cant support multiline textview because in singleline lyric show is not perfect.
thanks
RT, 虽说这么使用是在小数人,。不过我们的需求是这样的。希望能给个解决问题的思路。感谢。
在onDraw方法里面目前能支持的吗?
前提:oppo手机(出现概率较大)
问题:歌词换行失效。
操作:频繁进行歌曲切换,调用loadLrc(File lrcFile)
加载歌词。偶现折行失效的bug,导致歌词超出屏幕被裁剪。
不知道是否有人遇到过这个问题
E/AndroidRuntime: FATAL EXCEPTION: main
java.util.ConcurrentModificationException
at java.util.ArrayList$ArrayListIterator.next(ArrayList.java:573)
at me.wcy.lrcview.LrcView.initEntryList(LrcView.java:285)
at me.wcy.lrcview.LrcView.onLrcLoaded(LrcView.java:206)
at me.wcy.lrcview.LrcView.access$000(LrcView.java:27)
at me.wcy.lrcview.LrcView$2.onPostExecute(LrcView.java:192)
at me.wcy.lrcview.LrcView$2.onPostExecute(LrcView.java:183)
at android.os.AsyncTask.finish(AsyncTask.java:651)
at android.os.AsyncTask.access$500(AsyncTask.java:180)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:668)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5441)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)
情景:
多首歌曲,快迅切换(即快速加速不同歌词时)出现该bug。
有时候会缺少第一句歌词,不知道为什么
希望加入中英文歌词同时显示的功能。。。中文歌词 一行,折行再显示英文歌词。已经在您掘金留言了
android:fadingEdgeLength以及android:requiresFadingEdge不启作用
How to Change Text Color programmatically instead of Xml?
public void loadLrc(final File mainLrcFile, final File secondLrcFile)
secondLrcFile== null的时候,爆npe异常
FATAL EXCEPTION: main
java.lang.IndexOutOfBoundsException: Invalid index 31, size is 0
at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
at java.util.ArrayList.get(ArrayList.java:308)
at me.wcy.lrcview.LrcView.newlineAnimation(LrcView.java:314)
at me.wcy.lrcview.LrcView.access$100(LrcView.java:27)
at me.wcy.lrcview.LrcView$3.run(LrcView.java:302)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5441)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)
在变动播放进度时,出现越界异常,是否在使用的时候未进行边界判断?
希望传入一个歌词的在线url就能直接解析,谢谢~
在线歌词测试地址:http://lrc.zhenxian.fm/lrc/ucJg7v6G8lnN9y1frO.lrc
RT
比如这样的歌词:
[00:15.350]卢:是否很惊讶 讲不出说话
[00:19.730]没错我是说 你想分手吗
[00:23.680]曾给你驯服到 就像绵羊
[00:28.880]何解会反咬你一下 你知吗
[00:32.350]王:也许该分心 不应再说话
[00:37.620]被放弃的我 应有此报吗
[00:40.530]如果我曾是个坏牧羊人
[00:45.720]能否再让我试一下
[00:48.570]抱一下
Fix
private static List<LrcEntry> parseLine(String line) {
if (TextUtils.isEmpty(line)) {
return null;
}
line = line.trim();
Matcher lineMatcher = Pattern.compile("((\\[\\d\\d:\\d\\d\\.\\d{2,3}\\])+)(.+)").matcher(line);
if (!lineMatcher.matches()) {
return null;
}
String times = lineMatcher.group(1);
String text = lineMatcher.group(3);
List<LrcEntry> entryList = new ArrayList<>();
Matcher timeMatcher = Pattern.compile("\\[(\\d\\d):(\\d\\d)\\.(\\d){2,3}\\]").matcher(times);
while (timeMatcher.find()) {
long min = Long.parseLong(timeMatcher.group(1));
long sec = Long.parseLong(timeMatcher.group(2));
long mil = Long.parseLong(timeMatcher.group(3));
long time = min * DateUtils.MINUTE_IN_MILLIS + sec * DateUtils.SECOND_IN_MILLIS + (mil >= 100L ? mil : mil * 10);
entryList.add(new LrcEntry(time, text));
}
return entryList;
}
`
LrcEntry 高度计算存在问题, 您未把行间距计算在内,行数多了,会存在重叠问题
float getTextHeight() {
if (paint == null || staticLayout == null) {
return 0;
}
return staticLayout.getLineCount() * paint.getTextSize(); // 此时行间距为1.0f,
}
在ViewPager中其中一页fragment内置LrcView,滑动歌词出现时间线后迅速滑向其它页,再次滑回来时时间线不会消失。
没法拖动呀
如题,读取的文件格式为gbk时,会出现乱码,想问下怎么设置?
歌词正常显示,但是却不能拖动
如题,歌词文件只支持UTF-8 格式吗?GBK会出现乱码
private int findShowLine(long time) {
int left = 0;
int right = mLrcEntryList.size();
while (left <= right) {
int middle = (left + right) / 2;
long middleTime = mLrcEntryList.get(middle).getTime();
if (time < middleTime) {
right = middle - 1;
} else {
if (middle + 1 >= mLrcEntryList.size() || time < mLrcEntryList.get(middle + 1).getTime()) {
return middle;
}
left = middle + 1;
}
}
return 0;
}
你好,请问 “middle + 1 >= mLrcEntryList.size()”这段代码中可不可以把mLrcEntryList.size()换成right ?
多行显示的时候,会发生跳动,请问如何解决?
如题,我已经将我自己项目中的该属性去掉可以解决问题,but it also a issue
使用loadLrcByUrl方法报出异常,歌词url可正常访问,异常如下:
2019-10-22 15:45:13.139 5643-5712/cn.whiteink.musicpartnerapp E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
Process: cn.whiteink.musicpartnerapp, PID: 5643
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:318)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)
Caused by: java.lang.NegativeArraySizeException: -1
at me.wcy.lrcview.LrcUtils.getContentFromNetwork(LrcUtils.java:154)
at me.wcy.lrcview.LrcView$4.doInBackground(LrcView.java:354)
at me.wcy.lrcview.LrcView$4.doInBackground(LrcView.java:351)
at android.os.AsyncTask$2.call(AsyncTask.java:304)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)
AsyncTask也早就过时了,现在新项目都是kotlin + 协程
感觉作者开源
希望增加控件单击事件,谢谢
一首歌词解析不了 一首只解析几句话
歌词.zip
感觉切换速度慢慢划贼难受
能不能整个自定义的
rt
你好,根据我毕设项目的实际,我需要复制LrcView的源码后修改并在我的毕设项目中使用。
我需要在修改后的代码里面添加什么吗?比如说License信息?
Accessing hidden field Landroid/animation/ValueAnimator;->sDurationScale:F (greylist-max-p, reflection, denied)
W/System.err: java.lang.NoSuchFieldException: No field sDurationScale in class Landroid/animation/ValueAnimator; (declaration of 'android.animation.ValueAnimator' appears in /system/framework/framework.jar)
W/System.err: at java.lang.Class.getDeclaredField(Native Method)
at me.wcy.lrcview.LrcUtils.resetDurationScale(LrcUtils.java:214)
at me.wcy.lrcview.LrcView.smoothScrollTo(LrcView.java:653)
at me.wcy.lrcview.LrcView.smoothScrollTo(LrcView.java:633)
at me.wcy.lrcview.LrcView.access$800(LrcView.java:47)
at me.wcy.lrcview.LrcView$5.run(LrcView.java:382)
at me.wcy.lrcview.LrcView.runOnUi(LrcView.java:733)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.