Android歌词秀设计思路(2)歌词处理(9)
来源:未知 责任编辑:责任编辑 发表时间:2014-05-10 12:23 点击:次
public void notifyTime(long millisecond){
if (mLyricLines != null){
int newLyric = seekLyric(millisecond);
Log.i(TAG, "newLyric = " + newLyric);
if(newLyric != -1 && newLyric != mCurrentLyric){//如果找到的歌词和现在的不是一句。
if(mListener != null){
//告诉一声,歌词已经编程另外一句啦!
mListener.onLyricChanged(newLyric);
}
mCurrentLyric = newLyric;
}
}
}
private int seekLyric(long millisecond){
int findStart = 0;
if(mCurrentLyric >= 0){
//如果已经指定当前字幕,则现在位置开始
findStart = mCurrentLyric;
}
long lyricTime = mLyricLines.get(findStart).mLyricTime;
if(millisecond > lyricTime){ //如果想要查找的时间在现在字幕的时间之后
//如果开始位置经是最后一句了,直接返回最后一句。
if(findStart == (mLyricLines.size() - 1)) return findStart;
int new_index = findStart + 1;
//找到第一句开始时间大于输入时间的歌词
while(new_index < mLyricLines.size() && mLyricLines.get(new_index).mLyricTime <= millisecond){
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>