您的位置:首页 > 移动开发 > Android开发

Android中从SD卡中获取歌词并与歌曲同步

2017-07-20 21:28 246 查看

先看看效果图吧,再看代码

 

1 private WordView mWordView;
2     private List mTimeList;
3     private MediaPlayer mPlayer;
4     private boolean isPause;
5     private boolean isStartTrackingTouch;
6 final Handler handler = new Handler();
7         bt10 = (Button) findViewById(R.id.bt10);
8         bt10.setOnClickListener(new OnClickListener() {
9             @Override
10             public void onClick(View v) {
11                 mPlayer.start();
12                 isPause = false;
13                 new Thread(new Runnable() {
14                     int i = 0;
15                     @Override
16                     public void run() {
17                         while (mPlayer.isPlaying()) {
18                             handler.post(new Runnable() {
19                                 @Override
20                                 public void run() {
21                                     mWordView.invalidate();
22                                 }
23                             });
24                             try {
25                                 int a = Integer.parseInt(String.valueOf(mTimeList
26                                         .get(i + 1)));
27                                 int b = Integer.parseInt(String.valueOf(mTimeList
28                                         .get(i)));
29                                 Thread.sleep(a - b);
30                             } catch (Exception e) {
31                             }
32                             i++;
33                             if (i == mTimeList.size() - 1) {
34                                 mPlayer.stop();
35                                 break;
36                             }
37                         }
38                     }
39                 }).start();
40             }
41         });
42         bt11 = (Button) findViewById(R.id.bt11);
43         bt11.setOnClickListener(new OnClickListener() {
44             @Override
45             public void onClick(View v) {
46                 mPlayer.pause();
47                 isPause = true;
48             }
49         });
50         LrcHandle lrcHandler = new LrcHandle();
51         String name1 = getIntent().getStringExtra("name");
52         String str=name1.substring(0,name1.indexOf('.'));
53         String str1=str+".lrc";
54         String name2 = getIntent().getStringExtra("name");
55         mWordView = (WordView) findViewById(R.id.text);
56         mWordView.setName(str1);
57         mPlayer = new MediaPlayer();
58         mPlayer.reset();
59         try {
60             lrcHandler.readLRC("/sdcard/"+str1);
61             mTimeList = lrcHandler.getTime();
62             mPlayer.setDataSource("/sdcard/"+name2);
63             mPlayer.prepare();
64         } catch (IOException e) {
65             e.printStackTrace();
66         } catch (IllegalArgumentException e) {
67             e.printStackTrace();
68         } catch (SecurityException e) {
69             e.printStackTrace();
70         } catch (IllegalStateException e) {
71             e.printStackTrace();
72         }
代码  

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: