public void play(final String filePath) throws Exception {
try {
if (mMediaPlayer == null) {
// 创建MediaPlayer对象并设置Listener
mMediaPlayer = new MediaPlayer();
} else {
// 复用MediaPlayer对象
mMediaPlayer.reset();
}
mMediaPlayer.setDataSource(filePath);
mMediaPlayer.prepare();
mMediaPlayer.setVolume(10.f, 1.0f);
// 复读第10秒到第20秒这个区间的音频
int startPos = 10000;
int endPos = 20000;
// Try to play three times
repeatAToB(startPos, endPos, 3);
} catch (Exception e) {
e.printStackTrace();
}
}
private void repeatAToB(final int startPos, final int endPos, final int repeatTimes)throws Exception {
mMediaPlayer.seekTo(startPos);
mMediaPlayer.start();
CountDownTimer cntr_aCounter = new CountDownTimer(/* millisInFuture= */endPos - startPos, /* countDownInterval= */1000) {
public void onTick(long millisUntilFinished) {
// DO SOMETHING
}
public void onFinish() {
// Code fire after finish
if((repeatTimes - 1) > 0){
try {
repeatAToB(startPos, endPos, repeatTimes - 1);
} catch (Exception e) {
e.printStackTrace();
}
}else{
mMediaPlayer.stop();
}
}
};
cntr_aCounter.start();
}
主要是重写onTick和onFinsh这两个方法,onFinish()中的代码是计时器结束的时候要做的事情;onTick(Long m)中的代码是你倒计时开始时要做的事情,参数m是直到完成的时间,构造方法MyCount()中的两个参数中,前者是倒计的时间数,后者是倒计每秒中间的间隔时间,都是以毫秒为单位。例如要倒计时30秒,每秒中间间隔时间是1秒,两个参数可以这样写MyCount(30000,1000)。 将后台线程的创建和Handler队列封装成为了一个方便的类调用。
当你想取消的时候使用mc.cancel()方法就行了。
package cn.demo;
02
03 import Android.app.Activity;
04 import Android.os.Bundle;
05 import Android.content.Intent;
06 import Android.os.CountDownTimer;
07 import Android.widget.TextView;
08 import Android.widget.Toast;
09 public class NewActivity extends Activity {
10 private MyCount mc;
11 private TextView tv;
12 @Override
13 protected void onCreate(Bundle savedInstanceState) {
14 // TODO Auto-generated method stub
15 super.onCreate(savedInstanceState);
16 setContentView(R.layout.main);
17 tv = (TextView)findViewById(R.id.show);
18 mc = new MyCount(30000, 1000);
19 mc.start();
20 }//end func
21
22 /*定义一个倒计时的内部类*/
23 class MyCount extends CountDownTimer {
24 public MyCount(long millisInFuture, long countDownInterval) {
25 super(millisInFuture, countDownInterval);
26 }
27 @Override
28 public void onFinish() {
29 tv.setText("finish");
30 }
31 @Override
32 public void onTick(long millisUntilFinished) {
33 tv.setText("请等待30秒(" + millisUntilFinished / 1000 + ")...");
34 Toast.makeText(NewActivity.this, millisUntilFinished / 1000 + "",
35 Toast.LENGTH_LONG).show();//toast有显示时间延迟
36 }
37 }
38 }
没有合适的资源?快使用搜索试试~ 我知道了~
android 音乐播放器(终版) 真机测试通过
共59个文件
class:25个
java:9个
png:8个
需积分: 10 12 下载量 143 浏览量
2013-07-01
16:47:23
上传
评论
收藏 776KB RAR 举报
温馨提示
moto 真机测试通过。android 音乐播放器 与前两版相比 增加了listview显示sd卡中的mp3文件,扫描方式由递归 改为直接搜数据库 大大提高了搜索速度。对初学者 有一定的参考价值。递归在真机上扫描很慢 大概5、6分钟。。。
资源推荐
资源详情
资源评论
收起资源包目录
MyMusicPlayer.rar (59个子文件)
MyMusicPlayer
.project 849B
AB复读实现.txt 4KB
src
MyMusicPlayer
hqh
StartAct.java 1KB
LrcRead.java 3KB
SysApplication.java 1KB
LyricView.java 3KB
MyMusicPlayerAct.java 9KB
LyricContent.java 343B
smgz.java 1KB
gclist.java 7KB
AndroidManifest.xml 875B
res
drawable-ldpi
icon.png 2KB
drawable-hdpi
music.jpg 49KB
last.png 6KB
next.png 6KB
icon.png 10KB
seeker.jpg 764B
play.png 7KB
background.jpg 155KB
sm.png 7KB
pause.png 6KB
drawable-mdpi
icon.png 3KB
layout
gq.xml 433B
sm.xml 606B
gqlist.xml 1KB
background.xml 351B
main.xml 3KB
values
strings.xml 180B
assets
gen
MyMusicPlayer
hqh
R.java 2KB
default.properties 364B
.classpath 280B
bin
MyMusicPlayer.apk 259KB
resources.ap_ 246KB
MyMusicPlayer
hqh
R$layout.class 507B
gclist$1.class 2KB
MyMusicPlayerAct$4.class 1KB
R$drawable.class 629B
R$attr.class 337B
MyMusicPlayerAct$6.class 2KB
StartAct.class 904B
MyMusicPlayerAct$1.class 1KB
LyricContent.class 784B
MyMusicPlayerAct$8.class 2KB
MyMusicPlayerAct$7.class 2KB
smgz.class 1KB
LyricView.class 3KB
MyMusicPlayerAct$5.class 2KB
LrcRead.class 3KB
R$id.class 831B
MyMusicPlayerAct$2.class 967B
gclist.class 4KB
SysApplication.class 2KB
R.class 524B
R$string.class 424B
MyMusicPlayerAct$3.class 916B
smgz$1.class 1KB
MyMusicPlayerAct.class 8KB
StartAct$1.class 935B
classes.dex 22KB
共 59 条
- 1
资源评论
h3610571
- 粉丝: 0
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功