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 }
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
MyMusicPlayer.rar (46个子文件)
MyMusicPlayer
bin
classes.dex 15KB
MyMusicPlayer
hqh
MyMusicPlayerAct$4.class 1KB
LyricContent.class 784B
MyMusicPlayerAct$3.class 916B
SysApplication.class 2KB
StartAct$1.class 947B
MyMusicPlayerAct$5.class 2KB
R$layout.class 425B
R$id.class 608B
R$drawable.class 574B
MyMusicPlayerAct$1.class 1KB
R$attr.class 337B
R.class 567B
StartAct.class 904B
R$string.class 424B
LyricView.class 3KB
MyMusicPlayerAct$2.class 902B
MyMusicPlayerAct.class 5KB
LrcRead.class 3KB
R$raw.class 414B
resources.ap_ 8.46MB
MyMusicPlayer.apk 8.47MB
res
drawable-ldpi
icon.png 2KB
drawable-hdpi
background.jpg 155KB
next.png 6KB
icon.png 4KB
pause.png 6KB
seeker.jpg 764B
last.png 6KB
play.png 7KB
values
strings.xml 183B
drawable-mdpi
icon.png 3KB
layout
main.xml 2KB
background.xml 351B
assets
default.properties 364B
gen
MyMusicPlayer
hqh
R.java 2KB
src
MyMusicPlayer
hqh
SysApplication.java 1KB
LyricContent.java 343B
MyMusicPlayerAct.java 6KB
LyricView.java 3KB
LrcRead.java 3KB
StartAct.java 1KB
.project 849B
AB复读实现.txt 4KB
.classpath 280B
AndroidManifest.xml 781B
共 46 条
- 1
h3610571
- 粉丝: 0
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- pta题库答案c语言之复杂度1最大子列和问题.zip
- 三维装箱问题(Three-Dimensional Bin Packing Problem,3D-BPP)是一个经典的组合优化问题
- 以下是一些关于Linux线程同步的基本概念和方法.txt
- 以下是一个简化的示例,它使用pygame库来模拟烟花动画的框架.txt
- Linux线程同步机制深度解析与实用指南.zip
- PTA题库C语言解题策略与实战.rar
- SVPWM控制技术的simulink建模与仿真【包括simulink模型,参考文献,操作步骤】
- AI高清修复图片画质易语言易语言源码易语言填表
- 映射窗口.ec易语言易语言模块CPU占用0%游戏监控窗口监控
- 易语言 361窗口模块高效、便捷、自封装、自用
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页