首先在Activity中设置相应参数,如下:
private ProgressBar pbar;
private static final int REFRESH_TIME = 1;
private long mPosOverride = -1;
// Handler used to update the current time
private TimeHandler mTimeHandler;
private boolean mIsPaused = false;
实现刷新进度的方法:
private long refreshCurrentTime() {
if (mService == null) {
return 500;
}
try {
final long pos = mPosOverride < 0 ? MusicUtils.position()
: mPosOverride;
if (pos >= 0 && MusicUtils.duration() > 0) {
// refreshCurrentTimeText(pos);
final int progress = (int) (1000 * pos / MusicUtils.duration());
pbar.setProgress(progress);
} else {
pbar.setProgress(1000);
}
// calculate the number of milliseconds until the next full second,
// so
// the counter can be updated at just the right time
final long remaining = 1000 - pos % 1000;
// approximate how often we would need to refresh the slider to
// move it smoothly
int width = pbar.getWidth();
if (width == 0) {
width = 320;
}
final long smoothrefreshtime = MusicUtils.duration() / width;
if (smoothrefreshtime > remaining) {
return remaining;
}
if (smoothrefreshtime < 20) {
return 20;
}
return smoothrefreshtime;
} catch (final Exception ignored) {
}
return 500;
}
/**
* @param delay
* When to update
*/
private void queueNextRefresh(final long delay) {
if (!mIsPaused) {
final Message message = mTimeHandler.obtainMessage(REFRESH_TIME);
mTimeHandler.removeMessages(REFRESH_TIME);
mTimeHandler.sendMessageDelayed(message, delay);
}
}
实现Handler:
/**
* Used to update the current time string
*/
private static final class TimeHandler extends Handler {
private final WeakReference<MusicWaveActivity> mAudioPlayer;
/**
* Constructor of <code>TimeHandler</code>
*/
public TimeHandler(final MusicWaveActivity player) {
mAudioPlayer = new WeakReference<MusicWaveActivity>(player);
}
@Override
public void handleMessage(final Message msg) {
switch (msg.what) {
case REFRESH_TIME:
final long next = mAudioPlayer.get().refreshCurrentTime();
mAudioPlayer.get().queueNextRefresh(next);
break;
default:
break;
}
}
};
最后在Activity 中的操作;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.home);
mTimeHandler = new TimeHandler(this);
}
@Override
protected void onDestroy() {
mIsPaused = false;
mTimeHandler.removeMessages(REFRESH_TIME);
}
@Override
protected void onResume() {
queueNextRefresh(1);
}
分享到:
相关推荐
本文实例为大家分享了android实现音乐播放器进度条效果的具体代码,供大家参考,具体内容如下 效果图 依赖3个对象 MediaPlayer:实现音乐播放,暂停,缓冲。 SeekBar:滑动的进度条。 java.util.Timer:定时器,时时...
简单的实现了音乐播放器进度条功能,内置两首歌,可通过点击下一首进行播放。读者可以自行加入一些其他的代码进行调整。
使用Android实现的带进度条的播放器,音乐播放在Service中实现播放、暂停、继续和停止,但是停止和进度条的关联还有些问题,有待改进。
音频播放实现暂停开始等 }); btnStop.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub musicStop(); } }...
Android实现简单音乐播放器(MediaPlayer),供大家参考,具体内容如下 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 实现一个简单的音乐播放器,要求功能有: 播放、暂停功能; 进度条显示...
博文介绍:http://blog.csdn.net/qq_21376985/article/details/52494574 Android开发实现进度条效果,SeekBar的简单使用。音量,音乐播放进度,视频播放进度等
开源MaskPrgressView 使用于音乐播放器实现.
为了大家更好的学习操作,以及提供给更入门Android做为一个领路的文章,我简单的制作了一个音乐播放器,实现简单的拖动进度条实现快进退功能以及其他的上一曲、下一曲、开始/暂停、 停止简单功能。 ----------------...
音乐播放器--简单实现播放、暂停、随机播放、音乐进度条。有侧滑菜单的实现,自定义Dialog的实现
主要介绍了Android编程开发音乐播放器,结合实例形式分析了Android音乐播放器开发所涉及的SeekBar,ListView,广播接收者(以代码的形式注册Receiver),系统服务,MediaPlayer等技巧,需要的朋友可以参考下 本资源是引导...
Android Studio开发的简易音乐播放器app,读取本地SD卡指定路径的mp3文件进行播放,实现以下功能: 1. 播放、暂停,停止,退出功能; 2. 后台播放功能;(service) 3. 进度条显示播放进度、拖动进度条改变进度功能...
Android音乐播放器的简单实现,歌曲列表展示,单击列表播放,上一首,下一首,暂停/播放,进度条显示,进度条拖拽播放,播放完自动下一首,原博客地址:https://blog.csdn.net/u010356768/article/details/79066188
基于Androidstudio平台开发的Android音乐播放器实现了如下的功能: 1:启动动画(运行程序有短暂视频播放,3秒钟后自动进入登录界面) 2:登录注册(账号密码采用了MD5加密) 3:轮播图(无限循环,每张循环的图片...
实现了扫描本地音乐以及音乐的播放、暂停、上一首下一首和自动循环播放,用户从点击爱心标记可以将当前歌曲加入喜欢歌曲列表,歌曲进度条可拖拽。当用户点击歌曲时开启服务在通知栏显示当前播放的歌曲。在退出app的...
大部分基本的播放器功能都实现了,包括获取SD卡音乐文件、歌曲选择、可拖动的进度条、获取歌词(网上歌词有的找不到)、播放模式切换、调节声音大小以及后台播放功能。主要涉及媒体播放器(MediaPlayer和MediaStore...
用mediaplayer实现的简单音乐播放器。运行的时候经常闪退。在asset目录下的json文件中存有很多音乐URL,运行app的时候用AsyncTask从里面读取然后播放。设置进度条的时候用到了handler异步通信。界面的跳转用嵌套...
android音乐播放器 暂停 播放 停止 进度条控制音乐播放位置的,各个功能都已实现,代码简单易学 ,适合学习者参考。
android本地音乐播放器,实现了进度条,歌曲时间显示,歌曲进度显示等基本功能
本资源是引导大家做一个音乐播放器的源码打包文件,在做这个Android开发实例的过程中,能够帮助大家进一步熟悉和掌握学过的ListView和其他一些组件。为了有更好的学习效果,其中很多功能我们手动实现,例如拖动音乐...