资源简介
代码片段和文件信息
package com.ysbing.lrcshow;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Locale;
import java.util.Timer;
import java.util.TimerTask;
/**
* 歌词显示区域
*
* 比较难的逻辑,就是两句歌词交替显示
* 如果歌词1为空,设置歌词1为下一句歌词,记录时间1-时间2为歌词2的等待时间
* 歌词1播放->时间2-时间1
*
* 记录开始时间
* 播放前获取现在时间,减去和歌词时间的差
* 歌词结束时间减去开始播放时间,算出速度
*/
public class LRCFragment extends Fragment {
private View mView;
private LRCTextView lrcTv1;
private LRCTextView lrcTv2;
private TextView mTimeView;
private LrcUtil lrcUtil;
private Timer mTimer;
private long musicDuration;
private float time;
private long startTime;
private boolean isEnd;
@Override
public View onCreateView(LayoutInflater inflater ViewGroup container Bundle savedInstanceState) {
if (mView != null) {
return mView;
}
mView = inflater.inflate(R.layout.fragment_lrc container false);
initUI();
return mView;
}
private void initUI() {
lrcTv1 = (LRCTextView) mView.findViewById(R.id.lrcTv1);
lrcTv2 = (LRCTextView) mView.findViewById(R.id.lrcTv2);
mTimeView = (TextView) mView.findViewById(R.id.time);
}
/**
* 开始歌词的播放
*/
public void start(final String lrcPath int musicDuration) throws FileNotFoundException {
this.musicDuration = musicDuration * 1000;//转换成毫秒
this.startTime = System.currentTimeMillis();
lrcUtil = new LrcUtil(new File(lrcPath));
new Thread(new Runnable() {
@Override
public void run() {
time1 = time2 = 0;
word1 = word2 = null;
isEnd = false;
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
lrcTv1.cancel();
lrcTv2.cancel();
showTime();
showLrc1();
}
});
}
}).start();
}
private void showTime() {
time = 0;
if (mTimer != null)
mTimer.cancel();
mTimer = new Timer();
TimerTask task = new TimerTask() {
public void run() {
time += 0.1;
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
String text = String.format(Locale.getDefault() “time:%.1f“ time);
mTimeView.setText(text);
}
});
}
};
mTimer.schedule(task
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 127 2016-07-26 16:13 LrcShow\.gitignore
文件 8 2016-07-26 16:13 LrcShow\app\.gitignore
文件 9314 2016-07-26 16:39 LrcShow\app\app.iml
文件 605 2016-07-26 16:19 LrcShow\app\build.gradle
文件 662 2016-07-26 16:13 LrcShow\app\proguard-rules.pro
文件 719 2016-07-26 17:07 LrcShow\app\src\main\AndroidManifest.xm
文件 2049 2016-07-26 16:53 LrcShow\app\src\main\assets\演员.lrc
文件 6997 2016-07-26 16:46 LrcShow\app\src\main\java\com\ysbing\lrcshow\LRCFragment.java
文件 4507 2016-07-26 16:20 LrcShow\app\src\main\java\com\ysbing\lrcshow\LRCTextView.java
文件 3960 2016-07-26 16:46 LrcShow\app\src\main\java\com\ysbing\lrcshow\LrcUtil.java
文件 1771 2016-07-26 17:11 LrcShow\app\src\main\java\com\ysbing\lrcshow\MainActivity.java
文件 1154 2016-07-26 16:51 LrcShow\app\src\main\res\layout\activity_main.xm
文件 1184 2016-07-26 16:37 LrcShow\app\src\main\res\layout\fragment_lrc.xm
文件 3418 2016-07-26 16:13 LrcShow\app\src\main\res\mipmap-hdpi\ic_launcher.png
文件 2206 2016-07-26 16:13 LrcShow\app\src\main\res\mipmap-mdpi\ic_launcher.png
文件 4842 2016-07-26 16:13 LrcShow\app\src\main\res\mipmap-xhdpi\ic_launcher.png
文件 7718 2016-07-26 16:13 LrcShow\app\src\main\res\mipmap-xxhdpi\ic_launcher.png
文件 10486 2016-07-26 16:13 LrcShow\app\src\main\res\mipmap-xxxhdpi\ic_launcher.png
文件 78 2016-07-26 16:52 LrcShow\app\src\main\res\values\strings.xm
文件 528 2016-07-26 16:13 LrcShow\build.gradle
文件 747 2016-07-26 16:13 LrcShow\gradle.properties
文件 4971 2016-07-26 16:13 LrcShow\gradlew
文件 2404 2016-07-26 16:13 LrcShow\gradlew.bat
文件 427 2016-07-26 16:13 LrcShow\local.properties
文件 861 2016-07-26 16:14 LrcShow\LrcShow.iml
文件 16 2016-07-26 16:13 LrcShow\settings.gradle
目录 0 2016-07-26 17:11 LrcShow\app\src\main\java\com\ysbing\lrcshow
目录 0 2016-07-26 16:17 LrcShow\app\src\main\java\com\ysbing
目录 0 2016-07-26 16:16 LrcShow\app\src\main\java\com
目录 0 2016-07-26 16:13 LrcShow\app\src\main\res\drawable
............此处省略19个文件信息
相关资源
- Vue + SpringBoot + MyBatis 音乐网站(源码
- Android代码-多功能拨号盘源码.zip
- printershare直接破解版--11.5(适配andr
- android RDP远程桌面客户端源码
- 手机远程控制手机android
- spring boot+ios app+android app 即时通讯项目
- Androidrepo文件
- Aandroid 多线程断点续传同时多个大文
- Vue项目实现手机端上传图片,使用于
- Android多文件断点续传
- Android多线程文件夹及断点续传
- android 安卓 FTP 文件 管理
- Android-5.1.1_r1源码.7z
- mac版adb工具
- NFC Card万能读卡android程序
- Android直连Mysql数据库需要导入的jar包
- 音乐相关的jar
- android实现谷歌地图项目
- Android日历239876
- 主页面框架
- Android双列滑动表格(双表头不动)
- android绘制心电图
- Android安卓中文API开发文档参考手册官
- JSP+SQL音乐网站(毕业设计)
- Android开发的UI图标大全
- Crypto++ 7.0.0 for Android 已编译
- Android手机通过otg线外接usb摄像头
- AndroidStudio使用svn第一次提交忽略文件
- Android编程设计模式之原型模式详解
- 浅谈Android客户端与服务器的数据交互
评论
共有 条评论